From a5df712dca0d71b678ae61a60373cbf0eb464dd6 Mon Sep 17 00:00:00 2001 From: MaYiFei Date: Mon, 17 Jan 2022 18:42:56 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0NodeAdapter=E4=B8=ADfoote?= =?UTF-8?q?r=E8=B7=9F=E9=9A=8F=E5=86=85=E5=AE=B9=E6=94=B6=E8=B5=B7?= =?UTF-8?q?=E5=B1=95=E5=BC=80=E7=9A=84=E6=94=AF=E6=8C=81=EF=BC=8C=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E5=AE=9E=E7=8E=B0ExpandableNodeFooterImpl=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=9B=BF=E4=BB=A3=E4=BB=A5=E5=89=8D=E7=9A=84NodeFoote?= =?UTF-8?q?rImp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../library/adapter/base/BaseNodeAdapter.kt | 128 ++++++++++++------ .../entity/node/ExpandableNodeFooterImpl.kt | 20 +++ 2 files changed, 105 insertions(+), 43 deletions(-) create mode 100644 library/src/main/java/com/chad/library/adapter/base/entity/node/ExpandableNodeFooterImpl.kt diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseNodeAdapter.kt b/library/src/main/java/com/chad/library/adapter/base/BaseNodeAdapter.kt index 804d9f034..d4711e936 100644 --- a/library/src/main/java/com/chad/library/adapter/base/BaseNodeAdapter.kt +++ b/library/src/main/java/com/chad/library/adapter/base/BaseNodeAdapter.kt @@ -4,15 +4,18 @@ import androidx.annotation.IntRange import androidx.recyclerview.widget.DiffUtil import com.chad.library.adapter.base.entity.node.BaseExpandNode import com.chad.library.adapter.base.entity.node.BaseNode +import com.chad.library.adapter.base.entity.node.ExpandableNodeFooterImpl import com.chad.library.adapter.base.entity.node.NodeFooterImp import com.chad.library.adapter.base.provider.BaseItemProvider import com.chad.library.adapter.base.provider.BaseNodeProvider -abstract class BaseNodeAdapter(nodeList: MutableList? = null) - : BaseProviderMultiAdapter(null) { +abstract class BaseNodeAdapter(nodeList: MutableList? = null) : + BaseProviderMultiAdapter(null) { private val fullSpanNodeTypeSet = HashSet() + private val expandableFooterTypeSet = HashSet() + init { if (!nodeList.isNullOrEmpty()) { val flatData = flatData(nodeList) @@ -42,9 +45,14 @@ abstract class BaseNodeAdapter(nodeList: MutableList? = null) * 添加脚部 node provider * 铺满一行或者一列 * @param provider BaseItemProvider + * @param expandable 是否跟随内容展开收起 */ - fun addFooterNodeProvider(provider: BaseNodeProvider) { - addFullSpanNodeProvider(provider) + fun addFooterNodeProvider(provider: BaseNodeProvider, expandable: Boolean = false) { + if (expandable) + expandableFooterTypeSet.add(provider.itemViewType) + else + fullSpanNodeTypeSet.add(provider.itemViewType) + addItemProvider(provider) } /** @@ -60,7 +68,9 @@ abstract class BaseNodeAdapter(nodeList: MutableList? = null) } override fun isFixedViewType(type: Int): Boolean { - return super.isFixedViewType(type) || fullSpanNodeTypeSet.contains(type) + return if (expandableFooterTypeSet.contains(type)) + false + else super.isFixedViewType(type) || fullSpanNodeTypeSet.contains(type) } override fun setNewInstance(list: MutableList?) { @@ -370,7 +380,10 @@ abstract class BaseNodeAdapter(nodeList: MutableList? = null) * @param isExpanded Boolean? 如果不需要改变状态,设置为null。true 为展开,false 为收起 * @return MutableList */ - private fun flatData(list: Collection, isExpanded: Boolean? = null): MutableList { + private fun flatData( + list: Collection, + isExpanded: Boolean? = null, + ): MutableList { val newList = ArrayList() for (element in list) { @@ -398,6 +411,9 @@ abstract class BaseNodeAdapter(nodeList: MutableList? = null) if (element is NodeFooterImp) { element.footerNode?.let { + if (element is ExpandableNodeFooterImpl && element.isExpandable) { + return@let + } newList.add(it) } } @@ -415,11 +431,13 @@ abstract class BaseNodeAdapter(nodeList: MutableList? = null) * @param animate Boolean * @param notify Boolean */ - private fun collapse(@IntRange(from = 0) position: Int, - isChangeChildCollapse: Boolean = false, - animate: Boolean = true, - notify: Boolean = true, - parentPayload: Any? = null): Int { + private fun collapse( + @IntRange(from = 0) position: Int, + isChangeChildCollapse: Boolean = false, + animate: Boolean = true, + notify: Boolean = true, + parentPayload: Any? = null, + ): Int { val node = this.data[position] if (node is BaseExpandNode && node.isExpanded) { @@ -431,6 +449,11 @@ abstract class BaseNodeAdapter(nodeList: MutableList? = null) return 0 } val items = flatData(node.childNode!!, if (isChangeChildCollapse) false else null) + if (node is ExpandableNodeFooterImpl && node.isExpandable) { + node.footerNode?.let { + items.add(it) + } + } val size = items.size this.data.removeAll(items) if (notify) { @@ -455,11 +478,13 @@ abstract class BaseNodeAdapter(nodeList: MutableList? = null) * @param animate Boolean * @param notify Boolean */ - private fun expand(@IntRange(from = 0) position: Int, - isChangeChildExpand: Boolean = false, - animate: Boolean = true, - notify: Boolean = true, - parentPayload: Any? = null): Int { + private fun expand( + @IntRange(from = 0) position: Int, + isChangeChildExpand: Boolean = false, + animate: Boolean = true, + notify: Boolean = true, + parentPayload: Any? = null, + ): Int { val node = this.data[position] if (node is BaseExpandNode && !node.isExpanded) { @@ -471,6 +496,11 @@ abstract class BaseNodeAdapter(nodeList: MutableList? = null) return 0 } val items = flatData(node.childNode!!, if (isChangeChildExpand) true else null) + if (node is ExpandableNodeFooterImpl && node.isExpandable) { + node.footerNode?.let { + items.add(it) + } + } val size = items.size this.data.addAll(position + 1, items) if (notify) { @@ -493,10 +523,12 @@ abstract class BaseNodeAdapter(nodeList: MutableList? = null) * @param notify Boolean */ @JvmOverloads - fun collapse(@IntRange(from = 0) position: Int, - animate: Boolean = true, - notify: Boolean = true, - parentPayload: Any? = null): Int { + fun collapse( + @IntRange(from = 0) position: Int, + animate: Boolean = true, + notify: Boolean = true, + parentPayload: Any? = null, + ): Int { return collapse(position, false, animate, notify, parentPayload) } @@ -507,10 +539,12 @@ abstract class BaseNodeAdapter(nodeList: MutableList? = null) * @param notify Boolean */ @JvmOverloads - fun expand(@IntRange(from = 0) position: Int, - animate: Boolean = true, - notify: Boolean = true, - parentPayload: Any? = null): Int { + fun expand( + @IntRange(from = 0) position: Int, + animate: Boolean = true, + notify: Boolean = true, + parentPayload: Any? = null, + ): Int { return expand(position, false, animate, notify, parentPayload) } @@ -521,10 +555,12 @@ abstract class BaseNodeAdapter(nodeList: MutableList? = null) * @param notify Boolean */ @JvmOverloads - fun expandOrCollapse(@IntRange(from = 0) position: Int, - animate: Boolean = true, - notify: Boolean = true, - parentPayload: Any? = null): Int { + fun expandOrCollapse( + @IntRange(from = 0) position: Int, + animate: Boolean = true, + notify: Boolean = true, + parentPayload: Any? = null, + ): Int { val node = this.data[position] if (node is BaseExpandNode) { return if (node.isExpanded) { @@ -537,18 +573,22 @@ abstract class BaseNodeAdapter(nodeList: MutableList? = null) } @JvmOverloads - fun expandAndChild(@IntRange(from = 0) position: Int, - animate: Boolean = true, - notify: Boolean = true, - parentPayload: Any? = null): Int { + fun expandAndChild( + @IntRange(from = 0) position: Int, + animate: Boolean = true, + notify: Boolean = true, + parentPayload: Any? = null, + ): Int { return expand(position, true, animate, notify, parentPayload) } @JvmOverloads - fun collapseAndChild(@IntRange(from = 0) position: Int, - animate: Boolean = true, - notify: Boolean = true, - parentPayload: Any? = null): Int { + fun collapseAndChild( + @IntRange(from = 0) position: Int, + animate: Boolean = true, + notify: Boolean = true, + parentPayload: Any? = null, + ): Int { return collapse(position, true, animate, notify, parentPayload) } @@ -561,13 +601,15 @@ abstract class BaseNodeAdapter(nodeList: MutableList? = null) * @param notify Boolean */ @JvmOverloads - fun expandAndCollapseOther(@IntRange(from = 0) position: Int, - isExpandedChild: Boolean = false, - isCollapseChild: Boolean = true, - animate: Boolean = true, - notify: Boolean = true, - expandPayload: Any? = null, - collapsePayload: Any? = null) { + fun expandAndCollapseOther( + @IntRange(from = 0) position: Int, + isExpandedChild: Boolean = false, + isCollapseChild: Boolean = true, + animate: Boolean = true, + notify: Boolean = true, + expandPayload: Any? = null, + collapsePayload: Any? = null, + ) { val expandCount = expand(position, isExpandedChild, animate, notify, expandPayload) if (expandCount == 0) { diff --git a/library/src/main/java/com/chad/library/adapter/base/entity/node/ExpandableNodeFooterImpl.kt b/library/src/main/java/com/chad/library/adapter/base/entity/node/ExpandableNodeFooterImpl.kt new file mode 100644 index 000000000..b2884485b --- /dev/null +++ b/library/src/main/java/com/chad/library/adapter/base/entity/node/ExpandableNodeFooterImpl.kt @@ -0,0 +1,20 @@ +package com.chad.library.adapter.base.entity.node + +/** + * 跟随内容收起展开的页脚 + * 使用 ExpandableNodeFooterImpl 时需要 + */ +interface ExpandableNodeFooterImpl : NodeFooterImp { + + /** + * 是否跟随子节点变换 + */ + val isExpandable: Boolean + + /** + * footerNode 需要返回固定的 item + * 不能像demo一样每次return new RootFooterNode(""); + * 否则收起时会删除失败,可以通过 by lazy 等固定 RootNode 中的返回值 + */ + override val footerNode: BaseNode? +} \ No newline at end of file From f250ac6db656f0950680e20a539e5d250c1ebc6d Mon Sep 17 00:00:00 2001 From: MaYiFei1995 Date: Fri, 19 Aug 2022 17:49:48 +0800 Subject: [PATCH 2/2] =?UTF-8?q?library=E6=94=B9=E4=B8=BASupport=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 14 +++++------ gradle.properties | 4 ++-- library/build.gradle | 6 ++--- .../library/adapter/base/BaseBinderAdapter.kt | 12 +++++----- .../adapter/base/BaseMultiItemQuickAdapter.kt | 2 +- .../library/adapter/base/BaseNodeAdapter.kt | 4 ++-- .../adapter/base/BaseProviderMultiAdapter.kt | 10 ++++---- .../library/adapter/base/BaseQuickAdapter.kt | 24 +++++++++---------- .../adapter/base/BaseSectionQuickAdapter.kt | 2 +- .../adapter/base/binder/BaseItemBinder.kt | 2 +- .../base/binder/QuickDataBindingItemBinder.kt | 2 +- .../adapter/base/binder/QuickItemBinder.kt | 2 +- .../base/binder/QuickViewBindingItemBinder.kt | 2 +- .../base/delegate/BaseMultiTypeDelegate.kt | 2 +- .../adapter/base/diff/BrvahAsyncDiffer.kt | 11 ++++----- .../base/diff/BrvahAsyncDifferConfig.kt | 4 ++-- .../base/diff/BrvahListUpdateCallback.kt | 2 +- .../library/adapter/base/diff/DifferImp.java | 2 +- .../adapter/base/diff/ListChangeListener.java | 2 +- .../base/dragswipe/DragAndSwipeCallback.java | 7 +++--- .../base/listener/DraggableListenerImp.java | 2 +- .../base/listener/GridSpanSizeLookup.java | 5 ++-- .../base/listener/LoadMoreListenerImp.java | 3 ++- .../listener/OnItemChildClickListener.java | 3 +-- .../OnItemChildLongClickListener.java | 2 +- .../base/listener/OnItemClickListener.java | 3 +-- .../base/listener/OnItemDragListener.java | 2 +- .../listener/OnItemLongClickListener.java | 3 +-- .../base/listener/OnItemSwipeListener.java | 3 +-- .../base/listener/UpFetchListenerImp.java | 2 +- .../adapter/base/module/DraggableModule.kt | 4 ++-- .../adapter/base/module/LoadMoreModule.kt | 4 ++-- .../adapter/base/provider/BaseItemProvider.kt | 4 ++-- .../library/adapter/base/util/AdapterUtils.kt | 2 +- .../base/viewholder/BaseDataBindingHolder.kt | 5 ++-- .../adapter/base/viewholder/BaseViewHolder.kt | 10 ++++---- 36 files changed, 84 insertions(+), 89 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index bc7d56c1c..e01416229 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,13 +4,12 @@ apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' android { - compileSdkVersion 28 - buildToolsVersion "30.0.3" + compileSdkVersion 26 defaultConfig { applicationId "com.chad.baserecyclerviewadapterhelper" minSdkVersion 16 - targetSdkVersion 28 + targetSdkVersion 26 versionCode 9 versionName "3.0" } @@ -46,9 +45,10 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" implementation project(path: ':library') implementation 'com.google.android.material:material:1.2.1' - implementation 'androidx.cardview:cardview:1.0.0' - implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'com.kyleduo.switchbutton:library:2.0.0' - implementation 'androidx.recyclerview:recyclerview:1.1.0' - implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" + implementation 'com.android.support:recyclerview-v7:26.0.0' + implementation 'com.android.support:appcompat-v7:26.0.0' + implementation 'com.android.support:cardview-v7:26.0.0' + implementation 'com.android.support:design:26.0.0' } diff --git a/gradle.properties b/gradle.properties index 380a718be..8668b47ec 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,9 +11,9 @@ # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true #Wed Feb 26 13:11:31 CST 2020 -android.enableJetifier=true +#android.enableJetifier=true org.gradle.jvmargs=-Xmx2048M -Dkotlin.daemon.jvm.options\="-Xmx2048M" android.buildCacheDir=./build/buildCache/ -android.useAndroidX=true +#android.useAndroidX=true android.enableD8=true android.enableBuildCache=true diff --git a/library/build.gradle b/library/build.gradle index c59154eeb..a8fd5c471 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -4,7 +4,6 @@ apply plugin: 'kotlin-android' android { compileSdkVersion 28 - buildToolsVersion "30.0.3" defaultConfig { minSdkVersion 14 @@ -45,7 +44,6 @@ task sourcesJar(type: Jar) { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - implementation 'androidx.annotation:annotation:1.2.0' - - compileOnly 'androidx.recyclerview:recyclerview:1.2.1' + compileOnly 'com.android.support:recyclerview-v7:28.0.0' + compileOnly 'com.android.support:appcompat-v7:28.0.0' } diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseBinderAdapter.kt b/library/src/main/java/com/chad/library/adapter/base/BaseBinderAdapter.kt index f38dd2a57..489c2934b 100644 --- a/library/src/main/java/com/chad/library/adapter/base/BaseBinderAdapter.kt +++ b/library/src/main/java/com/chad/library/adapter/base/BaseBinderAdapter.kt @@ -1,11 +1,11 @@ package com.chad.library.adapter.base import android.annotation.SuppressLint +import android.support.v7.util.DiffUtil +import android.support.v7.widget.RecyclerView import android.util.SparseArray import android.view.View import android.view.ViewGroup -import androidx.recyclerview.widget.DiffUtil -import androidx.recyclerview.widget.RecyclerView import com.chad.library.adapter.base.binder.BaseItemBinder import com.chad.library.adapter.base.viewholder.BaseViewHolder @@ -121,7 +121,7 @@ open class BaseBinderAdapter(list: MutableList? = null) : BaseQuickAdapter< //如果没有设置点击监听,则回调给 itemProvider //Callback to itemProvider if no click listener is set viewHolder.itemView.setOnClickListener { - var position = viewHolder.bindingAdapterPosition + var position = viewHolder.layoutPosition if (position == RecyclerView.NO_POSITION) { return@setOnClickListener } @@ -137,7 +137,7 @@ open class BaseBinderAdapter(list: MutableList? = null) : BaseQuickAdapter< //如果没有设置长按监听,则回调给itemProvider // If you do not set a long press listener, callback to the itemProvider viewHolder.itemView.setOnLongClickListener { - var position = viewHolder.bindingAdapterPosition + var position = viewHolder.adapterPosition if (position == RecyclerView.NO_POSITION) { return@setOnLongClickListener false } @@ -160,7 +160,7 @@ open class BaseBinderAdapter(list: MutableList? = null) : BaseQuickAdapter< it.isClickable = true } it.setOnClickListener { v -> - var position: Int = viewHolder.bindingAdapterPosition + var position: Int = viewHolder.adapterPosition if (position == RecyclerView.NO_POSITION) { return@setOnClickListener } @@ -179,7 +179,7 @@ open class BaseBinderAdapter(list: MutableList? = null) : BaseQuickAdapter< it.isLongClickable = true } it.setOnLongClickListener { v -> - var position: Int = viewHolder.bindingAdapterPosition + var position: Int = viewHolder.adapterPosition if (position == RecyclerView.NO_POSITION) { return@setOnLongClickListener false } diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseMultiItemQuickAdapter.kt b/library/src/main/java/com/chad/library/adapter/base/BaseMultiItemQuickAdapter.kt index d592208f6..f72a7bb82 100644 --- a/library/src/main/java/com/chad/library/adapter/base/BaseMultiItemQuickAdapter.kt +++ b/library/src/main/java/com/chad/library/adapter/base/BaseMultiItemQuickAdapter.kt @@ -1,8 +1,8 @@ package com.chad.library.adapter.base +import android.support.annotation.LayoutRes import android.util.SparseIntArray import android.view.ViewGroup -import androidx.annotation.LayoutRes import com.chad.library.adapter.base.entity.MultiItemEntity import com.chad.library.adapter.base.viewholder.BaseViewHolder diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseNodeAdapter.kt b/library/src/main/java/com/chad/library/adapter/base/BaseNodeAdapter.kt index d4711e936..7f3c80560 100644 --- a/library/src/main/java/com/chad/library/adapter/base/BaseNodeAdapter.kt +++ b/library/src/main/java/com/chad/library/adapter/base/BaseNodeAdapter.kt @@ -1,13 +1,13 @@ package com.chad.library.adapter.base -import androidx.annotation.IntRange -import androidx.recyclerview.widget.DiffUtil +import android.support.v7.util.DiffUtil import com.chad.library.adapter.base.entity.node.BaseExpandNode import com.chad.library.adapter.base.entity.node.BaseNode import com.chad.library.adapter.base.entity.node.ExpandableNodeFooterImpl import com.chad.library.adapter.base.entity.node.NodeFooterImp import com.chad.library.adapter.base.provider.BaseItemProvider import com.chad.library.adapter.base.provider.BaseNodeProvider +import android.support.annotation.IntRange; abstract class BaseNodeAdapter(nodeList: MutableList? = null) : BaseProviderMultiAdapter(null) { diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseProviderMultiAdapter.kt b/library/src/main/java/com/chad/library/adapter/base/BaseProviderMultiAdapter.kt index 91a7a26a8..172452315 100644 --- a/library/src/main/java/com/chad/library/adapter/base/BaseProviderMultiAdapter.kt +++ b/library/src/main/java/com/chad/library/adapter/base/BaseProviderMultiAdapter.kt @@ -1,9 +1,9 @@ package com.chad.library.adapter.base +import android.support.v7.widget.RecyclerView import android.util.SparseArray import android.view.View import android.view.ViewGroup -import androidx.recyclerview.widget.RecyclerView import com.chad.library.adapter.base.provider.BaseItemProvider import com.chad.library.adapter.base.viewholder.BaseViewHolder @@ -94,7 +94,7 @@ abstract class BaseProviderMultiAdapter(data: MutableList? = null) : //如果没有设置点击监听,则回调给 itemProvider //Callback to itemProvider if no click listener is set viewHolder.itemView.setOnClickListener { - var position = viewHolder.bindingAdapterPosition + var position = viewHolder.adapterPosition if (position == RecyclerView.NO_POSITION) { return@setOnClickListener } @@ -110,7 +110,7 @@ abstract class BaseProviderMultiAdapter(data: MutableList? = null) : //如果没有设置长按监听,则回调给itemProvider // If you do not set a long press listener, callback to the itemProvider viewHolder.itemView.setOnLongClickListener { - var position = viewHolder.bindingAdapterPosition + var position = viewHolder.adapterPosition if (position == RecyclerView.NO_POSITION) { return@setOnLongClickListener false } @@ -133,7 +133,7 @@ abstract class BaseProviderMultiAdapter(data: MutableList? = null) : it.isClickable = true } it.setOnClickListener { v -> - var position: Int = viewHolder.bindingAdapterPosition + var position: Int = viewHolder.adapterPosition if (position == RecyclerView.NO_POSITION) { return@setOnClickListener } @@ -152,7 +152,7 @@ abstract class BaseProviderMultiAdapter(data: MutableList? = null) : it.isLongClickable = true } it.setOnLongClickListener { v -> - var position: Int = viewHolder.bindingAdapterPosition + var position: Int = viewHolder.adapterPosition if (position == RecyclerView.NO_POSITION) { return@setOnLongClickListener false } diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.kt b/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.kt index e87f7adda..5c6fe3ef7 100644 --- a/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.kt +++ b/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.kt @@ -2,6 +2,14 @@ package com.chad.library.adapter.base import android.animation.Animator import android.content.Context +import android.support.annotation.IdRes +import android.support.annotation.LayoutRes +import android.support.annotation.IntRange +import android.support.annotation.NonNull +import android.support.v7.util.DiffUtil +import android.support.v7.widget.GridLayoutManager +import android.support.v7.widget.RecyclerView +import android.support.v7.widget.StaggeredGridLayoutManager import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -10,14 +18,6 @@ import android.view.ViewGroup.LayoutParams.WRAP_CONTENT import android.view.ViewParent import android.widget.FrameLayout import android.widget.LinearLayout -import androidx.annotation.IdRes -import androidx.annotation.IntRange -import androidx.annotation.LayoutRes -import androidx.annotation.NonNull -import androidx.recyclerview.widget.DiffUtil -import androidx.recyclerview.widget.GridLayoutManager -import androidx.recyclerview.widget.RecyclerView -import androidx.recyclerview.widget.StaggeredGridLayoutManager import com.chad.library.adapter.base.animation.* import com.chad.library.adapter.base.diff.BrvahAsyncDiffer import com.chad.library.adapter.base.diff.BrvahAsyncDifferConfig @@ -492,7 +492,7 @@ abstract class BaseQuickAdapter protected open fun bindViewClickListener(viewHolder: VH, viewType: Int) { mOnItemClickListener?.let { viewHolder.itemView.setOnClickListener { v -> - var position = viewHolder.bindingAdapterPosition + var position = viewHolder.adapterPosition if (position == RecyclerView.NO_POSITION) { return@setOnClickListener } @@ -502,7 +502,7 @@ abstract class BaseQuickAdapter } mOnItemLongClickListener?.let { viewHolder.itemView.setOnLongClickListener { v -> - var position = viewHolder.bindingAdapterPosition + var position = viewHolder.adapterPosition if (position == RecyclerView.NO_POSITION) { return@setOnLongClickListener false } @@ -518,7 +518,7 @@ abstract class BaseQuickAdapter childView.isClickable = true } childView.setOnClickListener { v -> - var position = viewHolder.bindingAdapterPosition + var position = viewHolder.adapterPosition if (position == RecyclerView.NO_POSITION) { return@setOnClickListener } @@ -535,7 +535,7 @@ abstract class BaseQuickAdapter childView.isLongClickable = true } childView.setOnLongClickListener { v -> - var position = viewHolder.bindingAdapterPosition + var position = viewHolder.adapterPosition if (position == RecyclerView.NO_POSITION) { return@setOnLongClickListener false } diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseSectionQuickAdapter.kt b/library/src/main/java/com/chad/library/adapter/base/BaseSectionQuickAdapter.kt index 2e49f6bec..2ebabd7c5 100644 --- a/library/src/main/java/com/chad/library/adapter/base/BaseSectionQuickAdapter.kt +++ b/library/src/main/java/com/chad/library/adapter/base/BaseSectionQuickAdapter.kt @@ -1,6 +1,6 @@ package com.chad.library.adapter.base -import androidx.annotation.LayoutRes +import android.support.annotation.LayoutRes import com.chad.library.adapter.base.entity.SectionEntity import com.chad.library.adapter.base.viewholder.BaseViewHolder diff --git a/library/src/main/java/com/chad/library/adapter/base/binder/BaseItemBinder.kt b/library/src/main/java/com/chad/library/adapter/base/binder/BaseItemBinder.kt index 3e45635dd..a6ef8f74f 100644 --- a/library/src/main/java/com/chad/library/adapter/base/binder/BaseItemBinder.kt +++ b/library/src/main/java/com/chad/library/adapter/base/binder/BaseItemBinder.kt @@ -1,9 +1,9 @@ package com.chad.library.adapter.base.binder import android.content.Context +import android.support.annotation.IdRes import android.view.View import android.view.ViewGroup -import androidx.annotation.IdRes import com.chad.library.adapter.base.BaseBinderAdapter import com.chad.library.adapter.base.viewholder.BaseViewHolder diff --git a/library/src/main/java/com/chad/library/adapter/base/binder/QuickDataBindingItemBinder.kt b/library/src/main/java/com/chad/library/adapter/base/binder/QuickDataBindingItemBinder.kt index e214a42bf..ad4645d46 100644 --- a/library/src/main/java/com/chad/library/adapter/base/binder/QuickDataBindingItemBinder.kt +++ b/library/src/main/java/com/chad/library/adapter/base/binder/QuickDataBindingItemBinder.kt @@ -1,8 +1,8 @@ package com.chad.library.adapter.base.binder +import android.databinding.ViewDataBinding import android.view.LayoutInflater import android.view.ViewGroup -import androidx.databinding.ViewDataBinding import com.chad.library.adapter.base.viewholder.BaseViewHolder /** diff --git a/library/src/main/java/com/chad/library/adapter/base/binder/QuickItemBinder.kt b/library/src/main/java/com/chad/library/adapter/base/binder/QuickItemBinder.kt index 24d6414b8..21d8c0ddf 100644 --- a/library/src/main/java/com/chad/library/adapter/base/binder/QuickItemBinder.kt +++ b/library/src/main/java/com/chad/library/adapter/base/binder/QuickItemBinder.kt @@ -1,7 +1,7 @@ package com.chad.library.adapter.base.binder +import android.support.annotation.LayoutRes import android.view.ViewGroup -import androidx.annotation.LayoutRes import com.chad.library.adapter.base.util.getItemView import com.chad.library.adapter.base.viewholder.BaseViewHolder diff --git a/library/src/main/java/com/chad/library/adapter/base/binder/QuickViewBindingItemBinder.kt b/library/src/main/java/com/chad/library/adapter/base/binder/QuickViewBindingItemBinder.kt index 98059d123..e58c21777 100644 --- a/library/src/main/java/com/chad/library/adapter/base/binder/QuickViewBindingItemBinder.kt +++ b/library/src/main/java/com/chad/library/adapter/base/binder/QuickViewBindingItemBinder.kt @@ -2,7 +2,7 @@ package com.chad.library.adapter.base.binder import android.view.LayoutInflater import android.view.ViewGroup -import androidx.viewbinding.ViewBinding +import android.viewbinding.ViewBinding import com.chad.library.adapter.base.viewholder.BaseViewHolder /** diff --git a/library/src/main/java/com/chad/library/adapter/base/delegate/BaseMultiTypeDelegate.kt b/library/src/main/java/com/chad/library/adapter/base/delegate/BaseMultiTypeDelegate.kt index f0f7a64e6..f58f5862e 100644 --- a/library/src/main/java/com/chad/library/adapter/base/delegate/BaseMultiTypeDelegate.kt +++ b/library/src/main/java/com/chad/library/adapter/base/delegate/BaseMultiTypeDelegate.kt @@ -1,7 +1,7 @@ package com.chad.library.adapter.base.delegate +import android.support.annotation.LayoutRes import android.util.SparseIntArray -import androidx.annotation.LayoutRes /** * help you to achieve multi type easily diff --git a/library/src/main/java/com/chad/library/adapter/base/diff/BrvahAsyncDiffer.kt b/library/src/main/java/com/chad/library/adapter/base/diff/BrvahAsyncDiffer.kt index 483e70cf0..663e2a13d 100644 --- a/library/src/main/java/com/chad/library/adapter/base/diff/BrvahAsyncDiffer.kt +++ b/library/src/main/java/com/chad/library/adapter/base/diff/BrvahAsyncDiffer.kt @@ -2,9 +2,8 @@ package com.chad.library.adapter.base.diff import android.os.Handler import android.os.Looper -import androidx.recyclerview.widget.DiffUtil -import androidx.recyclerview.widget.DiffUtil.DiffResult -import androidx.recyclerview.widget.ListUpdateCallback +import android.support.v7.util.DiffUtil +import android.support.v7.util.ListUpdateCallback import com.chad.library.adapter.base.BaseQuickAdapter import java.util.concurrent.CopyOnWriteArrayList import java.util.concurrent.Executor @@ -173,9 +172,9 @@ class BrvahAsyncDiffer(private val adapter: BaseQuickAdapter, } private fun latchList( - newList: MutableList, - diffResult: DiffResult, - commitCallback: Runnable?) { + newList: MutableList, + diffResult: DiffUtil.DiffResult, + commitCallback: Runnable?) { val previousList: List = adapter.data adapter.data = newList diff --git a/library/src/main/java/com/chad/library/adapter/base/diff/BrvahAsyncDifferConfig.kt b/library/src/main/java/com/chad/library/adapter/base/diff/BrvahAsyncDifferConfig.kt index 86beea910..025f4206a 100644 --- a/library/src/main/java/com/chad/library/adapter/base/diff/BrvahAsyncDifferConfig.kt +++ b/library/src/main/java/com/chad/library/adapter/base/diff/BrvahAsyncDifferConfig.kt @@ -1,7 +1,7 @@ package com.chad.library.adapter.base.diff -import androidx.annotation.RestrictTo -import androidx.recyclerview.widget.DiffUtil +import android.support.annotation.RestrictTo +import android.support.v7.util.DiffUtil import java.util.concurrent.Executor import java.util.concurrent.Executors diff --git a/library/src/main/java/com/chad/library/adapter/base/diff/BrvahListUpdateCallback.kt b/library/src/main/java/com/chad/library/adapter/base/diff/BrvahListUpdateCallback.kt index 6240f2ae7..c71f18f5b 100644 --- a/library/src/main/java/com/chad/library/adapter/base/diff/BrvahListUpdateCallback.kt +++ b/library/src/main/java/com/chad/library/adapter/base/diff/BrvahListUpdateCallback.kt @@ -1,6 +1,6 @@ package com.chad.library.adapter.base.diff -import androidx.recyclerview.widget.ListUpdateCallback +import android.support.v7.util.ListUpdateCallback import com.chad.library.adapter.base.BaseQuickAdapter class BrvahListUpdateCallback(private val mAdapter: BaseQuickAdapter<*, *>) : ListUpdateCallback { diff --git a/library/src/main/java/com/chad/library/adapter/base/diff/DifferImp.java b/library/src/main/java/com/chad/library/adapter/base/diff/DifferImp.java index d8d448e59..6be844a7b 100644 --- a/library/src/main/java/com/chad/library/adapter/base/diff/DifferImp.java +++ b/library/src/main/java/com/chad/library/adapter/base/diff/DifferImp.java @@ -1,6 +1,6 @@ package com.chad.library.adapter.base.diff; -import androidx.annotation.NonNull; +import android.support.annotation.NonNull; /** * 使用java接口定义方法 diff --git a/library/src/main/java/com/chad/library/adapter/base/diff/ListChangeListener.java b/library/src/main/java/com/chad/library/adapter/base/diff/ListChangeListener.java index e308bfd6d..d777646ac 100644 --- a/library/src/main/java/com/chad/library/adapter/base/diff/ListChangeListener.java +++ b/library/src/main/java/com/chad/library/adapter/base/diff/ListChangeListener.java @@ -1,6 +1,6 @@ package com.chad.library.adapter.base.diff; -import androidx.annotation.NonNull; +import android.support.annotation.NonNull; import java.util.List; diff --git a/library/src/main/java/com/chad/library/adapter/base/dragswipe/DragAndSwipeCallback.java b/library/src/main/java/com/chad/library/adapter/base/dragswipe/DragAndSwipeCallback.java index b3d478358..bbf1b5f4a 100644 --- a/library/src/main/java/com/chad/library/adapter/base/dragswipe/DragAndSwipeCallback.java +++ b/library/src/main/java/com/chad/library/adapter/base/dragswipe/DragAndSwipeCallback.java @@ -1,12 +1,11 @@ package com.chad.library.adapter.base.dragswipe; import android.graphics.Canvas; +import android.support.annotation.NonNull; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.helper.ItemTouchHelper; import android.view.View; -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.ItemTouchHelper; -import androidx.recyclerview.widget.RecyclerView; - import com.chad.library.R; import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.module.BaseDraggableModule; diff --git a/library/src/main/java/com/chad/library/adapter/base/listener/DraggableListenerImp.java b/library/src/main/java/com/chad/library/adapter/base/listener/DraggableListenerImp.java index d2574e34e..49402a796 100644 --- a/library/src/main/java/com/chad/library/adapter/base/listener/DraggableListenerImp.java +++ b/library/src/main/java/com/chad/library/adapter/base/listener/DraggableListenerImp.java @@ -1,6 +1,6 @@ package com.chad.library.adapter.base.listener; -import androidx.annotation.Nullable; +import android.support.annotation.Nullable; /** * @author: limuyang diff --git a/library/src/main/java/com/chad/library/adapter/base/listener/GridSpanSizeLookup.java b/library/src/main/java/com/chad/library/adapter/base/listener/GridSpanSizeLookup.java index 86fe06441..e609ed90c 100644 --- a/library/src/main/java/com/chad/library/adapter/base/listener/GridSpanSizeLookup.java +++ b/library/src/main/java/com/chad/library/adapter/base/listener/GridSpanSizeLookup.java @@ -1,7 +1,8 @@ package com.chad.library.adapter.base.listener; -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.GridLayoutManager; + +import android.support.annotation.NonNull; +import android.support.v7.widget.GridLayoutManager; /** * @author: limuyang diff --git a/library/src/main/java/com/chad/library/adapter/base/listener/LoadMoreListenerImp.java b/library/src/main/java/com/chad/library/adapter/base/listener/LoadMoreListenerImp.java index aa952bd2a..4b9993f04 100644 --- a/library/src/main/java/com/chad/library/adapter/base/listener/LoadMoreListenerImp.java +++ b/library/src/main/java/com/chad/library/adapter/base/listener/LoadMoreListenerImp.java @@ -1,6 +1,7 @@ package com.chad.library.adapter.base.listener; -import androidx.annotation.Nullable; + +import android.support.annotation.Nullable; /** * @author: limuyang diff --git a/library/src/main/java/com/chad/library/adapter/base/listener/OnItemChildClickListener.java b/library/src/main/java/com/chad/library/adapter/base/listener/OnItemChildClickListener.java index a1002a558..c6b5b0ee2 100644 --- a/library/src/main/java/com/chad/library/adapter/base/listener/OnItemChildClickListener.java +++ b/library/src/main/java/com/chad/library/adapter/base/listener/OnItemChildClickListener.java @@ -1,9 +1,8 @@ package com.chad.library.adapter.base.listener; +import android.support.annotation.NonNull; import android.view.View; -import androidx.annotation.NonNull; - import com.chad.library.adapter.base.BaseQuickAdapter; /** diff --git a/library/src/main/java/com/chad/library/adapter/base/listener/OnItemChildLongClickListener.java b/library/src/main/java/com/chad/library/adapter/base/listener/OnItemChildLongClickListener.java index a9392400c..f2948c7aa 100644 --- a/library/src/main/java/com/chad/library/adapter/base/listener/OnItemChildLongClickListener.java +++ b/library/src/main/java/com/chad/library/adapter/base/listener/OnItemChildLongClickListener.java @@ -1,8 +1,8 @@ package com.chad.library.adapter.base.listener; +import android.support.annotation.NonNull; import android.view.View; -import androidx.annotation.NonNull; import com.chad.library.adapter.base.BaseQuickAdapter; diff --git a/library/src/main/java/com/chad/library/adapter/base/listener/OnItemClickListener.java b/library/src/main/java/com/chad/library/adapter/base/listener/OnItemClickListener.java index 946caad4a..c7d296ea6 100644 --- a/library/src/main/java/com/chad/library/adapter/base/listener/OnItemClickListener.java +++ b/library/src/main/java/com/chad/library/adapter/base/listener/OnItemClickListener.java @@ -1,9 +1,8 @@ package com.chad.library.adapter.base.listener; +import android.support.annotation.NonNull; import android.view.View; -import androidx.annotation.NonNull; - import com.chad.library.adapter.base.BaseQuickAdapter; /** diff --git a/library/src/main/java/com/chad/library/adapter/base/listener/OnItemDragListener.java b/library/src/main/java/com/chad/library/adapter/base/listener/OnItemDragListener.java index 490868662..5c3cbe18a 100644 --- a/library/src/main/java/com/chad/library/adapter/base/listener/OnItemDragListener.java +++ b/library/src/main/java/com/chad/library/adapter/base/listener/OnItemDragListener.java @@ -1,6 +1,6 @@ package com.chad.library.adapter.base.listener; -import androidx.recyclerview.widget.RecyclerView; +import android.support.v7.widget.RecyclerView; /** * Created by luoxw on 2016/6/20. diff --git a/library/src/main/java/com/chad/library/adapter/base/listener/OnItemLongClickListener.java b/library/src/main/java/com/chad/library/adapter/base/listener/OnItemLongClickListener.java index ddccea4d1..ae3550a95 100644 --- a/library/src/main/java/com/chad/library/adapter/base/listener/OnItemLongClickListener.java +++ b/library/src/main/java/com/chad/library/adapter/base/listener/OnItemLongClickListener.java @@ -1,9 +1,8 @@ package com.chad.library.adapter.base.listener; +import android.support.annotation.NonNull; import android.view.View; -import androidx.annotation.NonNull; - import com.chad.library.adapter.base.BaseQuickAdapter; /** diff --git a/library/src/main/java/com/chad/library/adapter/base/listener/OnItemSwipeListener.java b/library/src/main/java/com/chad/library/adapter/base/listener/OnItemSwipeListener.java index 75bd10d7a..9227a2c8c 100644 --- a/library/src/main/java/com/chad/library/adapter/base/listener/OnItemSwipeListener.java +++ b/library/src/main/java/com/chad/library/adapter/base/listener/OnItemSwipeListener.java @@ -1,8 +1,7 @@ package com.chad.library.adapter.base.listener; import android.graphics.Canvas; - -import androidx.recyclerview.widget.RecyclerView; +import android.support.v7.widget.RecyclerView; /** * Created by luoxw on 2016/6/23. diff --git a/library/src/main/java/com/chad/library/adapter/base/listener/UpFetchListenerImp.java b/library/src/main/java/com/chad/library/adapter/base/listener/UpFetchListenerImp.java index 3393ca442..ff9acc181 100644 --- a/library/src/main/java/com/chad/library/adapter/base/listener/UpFetchListenerImp.java +++ b/library/src/main/java/com/chad/library/adapter/base/listener/UpFetchListenerImp.java @@ -1,6 +1,6 @@ package com.chad.library.adapter.base.listener; -import androidx.annotation.Nullable; +import android.support.annotation.Nullable; /** * @author: limuyang diff --git a/library/src/main/java/com/chad/library/adapter/base/module/DraggableModule.kt b/library/src/main/java/com/chad/library/adapter/base/module/DraggableModule.kt index c351dabb5..ff88c70f8 100644 --- a/library/src/main/java/com/chad/library/adapter/base/module/DraggableModule.kt +++ b/library/src/main/java/com/chad/library/adapter/base/module/DraggableModule.kt @@ -1,12 +1,12 @@ package com.chad.library.adapter.base.module import android.graphics.Canvas +import android.support.v7.widget.RecyclerView +import android.support.v7.widget.helper.ItemTouchHelper import android.view.MotionEvent import android.view.View import android.view.View.OnLongClickListener import android.view.View.OnTouchListener -import androidx.recyclerview.widget.ItemTouchHelper -import androidx.recyclerview.widget.RecyclerView import com.chad.library.R import com.chad.library.adapter.base.BaseQuickAdapter import com.chad.library.adapter.base.dragswipe.DragAndSwipeCallback diff --git a/library/src/main/java/com/chad/library/adapter/base/module/LoadMoreModule.kt b/library/src/main/java/com/chad/library/adapter/base/module/LoadMoreModule.kt index 5786347d1..9cca02202 100644 --- a/library/src/main/java/com/chad/library/adapter/base/module/LoadMoreModule.kt +++ b/library/src/main/java/com/chad/library/adapter/base/module/LoadMoreModule.kt @@ -1,7 +1,7 @@ package com.chad.library.adapter.base.module -import androidx.recyclerview.widget.LinearLayoutManager -import androidx.recyclerview.widget.StaggeredGridLayoutManager +import android.support.v7.widget.LinearLayoutManager +import android.support.v7.widget.StaggeredGridLayoutManager import com.chad.library.adapter.base.BaseQuickAdapter import com.chad.library.adapter.base.listener.LoadMoreListenerImp import com.chad.library.adapter.base.listener.OnLoadMoreListener diff --git a/library/src/main/java/com/chad/library/adapter/base/provider/BaseItemProvider.kt b/library/src/main/java/com/chad/library/adapter/base/provider/BaseItemProvider.kt index c42d50ac4..04bc0cdcd 100644 --- a/library/src/main/java/com/chad/library/adapter/base/provider/BaseItemProvider.kt +++ b/library/src/main/java/com/chad/library/adapter/base/provider/BaseItemProvider.kt @@ -1,10 +1,10 @@ package com.chad.library.adapter.base.provider import android.content.Context +import android.support.annotation.IdRes +import android.support.annotation.LayoutRes import android.view.View import android.view.ViewGroup -import androidx.annotation.IdRes -import androidx.annotation.LayoutRes import com.chad.library.adapter.base.BaseProviderMultiAdapter import com.chad.library.adapter.base.util.getItemView import com.chad.library.adapter.base.viewholder.BaseViewHolder diff --git a/library/src/main/java/com/chad/library/adapter/base/util/AdapterUtils.kt b/library/src/main/java/com/chad/library/adapter/base/util/AdapterUtils.kt index 9cf31bca2..c3fe608c6 100644 --- a/library/src/main/java/com/chad/library/adapter/base/util/AdapterUtils.kt +++ b/library/src/main/java/com/chad/library/adapter/base/util/AdapterUtils.kt @@ -1,9 +1,9 @@ package com.chad.library.adapter.base.util +import android.support.annotation.LayoutRes import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.annotation.LayoutRes /** * 扩展方法,用于获取View diff --git a/library/src/main/java/com/chad/library/adapter/base/viewholder/BaseDataBindingHolder.kt b/library/src/main/java/com/chad/library/adapter/base/viewholder/BaseDataBindingHolder.kt index a9bb33275..492e993e0 100644 --- a/library/src/main/java/com/chad/library/adapter/base/viewholder/BaseDataBindingHolder.kt +++ b/library/src/main/java/com/chad/library/adapter/base/viewholder/BaseDataBindingHolder.kt @@ -1,8 +1,9 @@ package com.chad.library.adapter.base.viewholder +import android.databinding.DataBindingUtil +import android.databinding.ViewDataBinding import android.view.View -import androidx.databinding.DataBindingUtil -import androidx.databinding.ViewDataBinding + /** * 方便 DataBinding 的使用 diff --git a/library/src/main/java/com/chad/library/adapter/base/viewholder/BaseViewHolder.kt b/library/src/main/java/com/chad/library/adapter/base/viewholder/BaseViewHolder.kt index a7d49183b..8d163cebe 100644 --- a/library/src/main/java/com/chad/library/adapter/base/viewholder/BaseViewHolder.kt +++ b/library/src/main/java/com/chad/library/adapter/base/viewholder/BaseViewHolder.kt @@ -1,16 +1,16 @@ package com.chad.library.adapter.base.viewholder +import android.databinding.DataBindingUtil +import android.databinding.ViewDataBinding import android.graphics.Bitmap import android.graphics.drawable.Drawable +import android.support.annotation.* +import android.support.v4.content.ContextCompat +import android.support.v7.widget.RecyclerView import android.util.SparseArray import android.view.View import android.widget.ImageView import android.widget.TextView -import androidx.annotation.* -import androidx.core.content.ContextCompat -import androidx.databinding.DataBindingUtil -import androidx.databinding.ViewDataBinding -import androidx.recyclerview.widget.RecyclerView /** * ViewHolder 基类