From b8c8483ac32df7783a64d3547bf76a9cead4f48f Mon Sep 17 00:00:00 2001 From: Yulong Lin Date: Sun, 12 Jun 2022 20:59:56 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8F=92=E5=85=A5?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E5=86=8D=E6=8B=96=E6=8B=BD=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E6=97=A0=E6=B3=95=E5=88=A0=E9=99=A4=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/me/simple/view/AddImageView.kt | 18 ++++++++++++----- .../demo/simple/addimageview/MainActivity.kt | 20 +++++++++++++------ 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/add_image_view/src/main/java/me/simple/view/AddImageView.kt b/add_image_view/src/main/java/me/simple/view/AddImageView.kt index 749f7c9..7426e96 100644 --- a/add_image_view/src/main/java/me/simple/view/AddImageView.kt +++ b/add_image_view/src/main/java/me/simple/view/AddImageView.kt @@ -3,6 +3,7 @@ package me.simple.view import android.content.Context import android.os.Vibrator import android.util.AttributeSet +import android.util.Log import android.util.TypedValue import android.view.ViewGroup import androidx.recyclerview.widget.GridLayoutManager @@ -156,6 +157,7 @@ open class AddImageView @JvmOverloads constructor( */ fun removeItem(path: String) { val index = mItems.indexOf(path) + Log.d("TTT","index = $index") if (index == -1) return mItems.removeAt(index) adapter?.notifyItemRemoved(index) @@ -268,6 +270,8 @@ open class AddImageView @JvmOverloads constructor( position: Int, addImageView: AddImageView ) { + Log.d("TTT","adapterPosition=${holder.adapterPosition}") + Log.d("TTT","bindingAdapterPosition=${holder.bindingAdapterPosition}") val path = addImageView.getItems()[holder.adapterPosition] onBindViewHolder(holder, path, addImageView) } @@ -317,16 +321,20 @@ open class AddImageView @JvmOverloads constructor( if (dragTargetIsAddView(target)) { return false } - - val fromPosition = viewHolder.adapterPosition - val toPosition = target.adapterPosition + val fromPosition = viewHolder.absoluteAdapterPosition + val toPosition = target.absoluteAdapterPosition if (fromPosition != toPosition) { vibrate() - java.util.Collections.swap(mItems, fromPosition, toPosition) + //移动中的 Item + val movingItem = mItems[fromPosition] + //先删除再添加到移动后的位置 + mItems.removeAt(fromPosition) + mItems.add(toPosition,movingItem) +// java.util.Collections.swap(mItems, fromPosition, toPosition) + adapter?.notifyItemMoved(fromPosition, toPosition) return true } - return true } diff --git a/app/src/main/java/demo/simple/addimageview/MainActivity.kt b/app/src/main/java/demo/simple/addimageview/MainActivity.kt index dfad0c4..59cd43c 100644 --- a/app/src/main/java/demo/simple/addimageview/MainActivity.kt +++ b/app/src/main/java/demo/simple/addimageview/MainActivity.kt @@ -24,12 +24,20 @@ class MainActivity : AppCompatActivity() { private val mImages by lazy { mutableListOf( - "https://gank.io/images/ce66aa74d78f49919085b2b2808ecc50", - "https://gank.io/images/02eb8ca3297f4931ab64b7ebd7b5b89c", - "https://gank.io/images/0f536c69ada247429b8a9e38d3dba8bb", - "https://gank.io/images/ccf0316264d245018fc651cffa6e90de", - "https://gank.io/images/95ddb01b6bd34a85aedfda4c9e9bd003", - "https://gank.io/images/e92911f5ff9446d5a899b652b1934b93", + "https://p.qqan.com/up/2022-2/16454222068823469.jpg", + "https://p.qqan.com/up/2022-2/16454222074615293.jpg", + "https://p.qqan.com/up/2022-2/16454222079248915.jpg", + "https://p.qqan.com/up/2022-2/16454222074882536.jpg", + "https://p.qqan.com/up/2022-2/16454222077125944.jpg", + "https://p.qqan.com/up/2022-2/16454222079542524.jpg", + +// "https://gank.io/images/ce66aa74d78f49919085b2b2808ecc50", +// "https://gank.io/images/02eb8ca3297f4931ab64b7ebd7b5b89c", +// "https://gank.io/images/0f536c69ada247429b8a9e38d3dba8bb", +// "https://gank.io/images/ccf0316264d245018fc651cffa6e90de", +// "https://gank.io/images/95ddb01b6bd34a85aedfda4c9e9bd003", +// "https://gank.io/images/e92911f5ff9446d5a899b652b1934b93", + // "https://gank.io/images/6e57b254da79416bbe58248b570ea85f", // "https://gank.io/images/e0b652d2a0cb46ba888a935c525bd312", // "https://gank.io/images/95ddb01b6bd34a85aedfda4c9e9bd003", From a1feac6d14de81d686da43723b36f7e60d1ea655 Mon Sep 17 00:00:00 2001 From: Yulong Lin Date: Sun, 12 Jun 2022 21:08:55 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- add_image_view/src/main/java/me/simple/view/AddImageView.kt | 3 --- app/src/main/java/demo/simple/addimageview/CustomItemView.kt | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/add_image_view/src/main/java/me/simple/view/AddImageView.kt b/add_image_view/src/main/java/me/simple/view/AddImageView.kt index 7426e96..5ca633d 100644 --- a/add_image_view/src/main/java/me/simple/view/AddImageView.kt +++ b/add_image_view/src/main/java/me/simple/view/AddImageView.kt @@ -157,7 +157,6 @@ open class AddImageView @JvmOverloads constructor( */ fun removeItem(path: String) { val index = mItems.indexOf(path) - Log.d("TTT","index = $index") if (index == -1) return mItems.removeAt(index) adapter?.notifyItemRemoved(index) @@ -270,8 +269,6 @@ open class AddImageView @JvmOverloads constructor( position: Int, addImageView: AddImageView ) { - Log.d("TTT","adapterPosition=${holder.adapterPosition}") - Log.d("TTT","bindingAdapterPosition=${holder.bindingAdapterPosition}") val path = addImageView.getItems()[holder.adapterPosition] onBindViewHolder(holder, path, addImageView) } diff --git a/app/src/main/java/demo/simple/addimageview/CustomItemView.kt b/app/src/main/java/demo/simple/addimageview/CustomItemView.kt index 4bd4a63..8943e33 100644 --- a/app/src/main/java/demo/simple/addimageview/CustomItemView.kt +++ b/app/src/main/java/demo/simple/addimageview/CustomItemView.kt @@ -1,6 +1,7 @@ package demo.simple.addimageview import android.graphics.Bitmap +import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -30,7 +31,6 @@ class CustomItemView : AddImageView.ItemViewDelegate() { .load(path) .apply(RequestOptions.bitmapTransform(multi)) .into(holder.ivCover) - holder.ivDel.setOnClickListener { addImageView.removeItem(path) }