From a30926542338bb9b0b72496b5b23d62f88d2ac3c Mon Sep 17 00:00:00 2001 From: limuyang Date: Sun, 14 Nov 2021 16:06:51 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E8=BF=87=E6=9C=9F?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/build.gradle | 3 +++ .../com/chad/library/adapter/base/BaseBinderAdapter.kt | 8 ++++---- .../chad/library/adapter/base/BaseProviderMultiAdapter.kt | 8 ++++---- .../com/chad/library/adapter/base/BaseQuickAdapter.kt | 8 ++++---- .../chad/library/adapter/base/BaseSectionQuickAdapter.kt | 1 - .../library/adapter/base/viewholder/BaseViewHolder.kt | 3 ++- 6 files changed, 17 insertions(+), 14 deletions(-) diff --git a/library/build.gradle b/library/build.gradle index 4bfc28c0d..c59154eeb 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -31,6 +31,9 @@ android { viewBinding { enabled = true } + buildFeatures { + dataBinding = true + } } // 打包源码jar 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 153675d2a..f38dd2a57 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 @@ -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.adapterPosition + var position = viewHolder.bindingAdapterPosition 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.adapterPosition + var position = viewHolder.bindingAdapterPosition 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.adapterPosition + var position: Int = viewHolder.bindingAdapterPosition 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.adapterPosition + var position: Int = viewHolder.bindingAdapterPosition if (position == RecyclerView.NO_POSITION) { return@setOnLongClickListener false } 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 a31a2cf7d..91a7a26a8 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 @@ -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.adapterPosition + var position = viewHolder.bindingAdapterPosition 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.adapterPosition + var position = viewHolder.bindingAdapterPosition 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.adapterPosition + var position: Int = viewHolder.bindingAdapterPosition 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.adapterPosition + var position: Int = viewHolder.bindingAdapterPosition 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 a7087dfb8..e87f7adda 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 @@ -492,7 +492,7 @@ abstract class BaseQuickAdapter protected open fun bindViewClickListener(viewHolder: VH, viewType: Int) { mOnItemClickListener?.let { viewHolder.itemView.setOnClickListener { v -> - var position = viewHolder.adapterPosition + var position = viewHolder.bindingAdapterPosition if (position == RecyclerView.NO_POSITION) { return@setOnClickListener } @@ -502,7 +502,7 @@ abstract class BaseQuickAdapter } mOnItemLongClickListener?.let { viewHolder.itemView.setOnLongClickListener { v -> - var position = viewHolder.adapterPosition + var position = viewHolder.bindingAdapterPosition if (position == RecyclerView.NO_POSITION) { return@setOnLongClickListener false } @@ -518,7 +518,7 @@ abstract class BaseQuickAdapter childView.isClickable = true } childView.setOnClickListener { v -> - var position = viewHolder.adapterPosition + var position = viewHolder.bindingAdapterPosition if (position == RecyclerView.NO_POSITION) { return@setOnClickListener } @@ -535,7 +535,7 @@ abstract class BaseQuickAdapter childView.isLongClickable = true } childView.setOnLongClickListener { v -> - var position = viewHolder.adapterPosition + var position = viewHolder.bindingAdapterPosition 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 334c301c0..2e49f6bec 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,5 @@ package com.chad.library.adapter.base -import android.view.ViewGroup import androidx.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/viewholder/BaseViewHolder.kt b/library/src/main/java/com/chad/library/adapter/base/viewholder/BaseViewHolder.kt index 2acfd0736..a7d49183b 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 @@ -7,6 +7,7 @@ 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 @@ -70,7 +71,7 @@ open class BaseViewHolder(view: View) : RecyclerView.ViewHolder(view) { } open fun setTextColorRes(@IdRes viewId: Int, @ColorRes colorRes: Int): BaseViewHolder { - getView(viewId).setTextColor(itemView.resources.getColor(colorRes)) + getView(viewId).setTextColor(ContextCompat.getColor(itemView.context, colorRes)) return this }