From c7c5b15cd167c1df61ab9b363d501213cfa070b3 Mon Sep 17 00:00:00 2001 From: kunfei Date: Sat, 15 Feb 2020 12:54:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/base/adapter/CommonRecyclerAdapter.kt | 38 +++++++++++++------ 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/io/legado/app/base/adapter/CommonRecyclerAdapter.kt b/app/src/main/java/io/legado/app/base/adapter/CommonRecyclerAdapter.kt index a87ffb58a..3dc0e8106 100644 --- a/app/src/main/java/io/legado/app/base/adapter/CommonRecyclerAdapter.kt +++ b/app/src/main/java/io/legado/app/base/adapter/CommonRecyclerAdapter.kt @@ -16,9 +16,12 @@ import java.util.* * * 通用的adapter 可添加header,footer,以及不同类型item */ -abstract class CommonRecyclerAdapter(protected val context: Context) : RecyclerView.Adapter() { +abstract class CommonRecyclerAdapter(protected val context: Context) : + RecyclerView.Adapter() { - constructor(context: Context, vararg delegates: Pair>) : this(context) { + constructor(context: Context, vararg delegates: Pair>) : this( + context + ) { addItemViewDelegates(*delegates) } @@ -247,7 +250,11 @@ abstract class CommonRecyclerAdapter(protected val context: Context) : Rec synchronized(lock) { val size = getActualItemCount() if (fromPosition in 0 until size && toPosition in 0 until size) { - notifyItemRangeChanged(fromPosition + getHeaderCount(), toPosition - fromPosition + 1, payloads) + notifyItemRangeChanged( + fromPosition + getHeaderCount(), + toPosition - fromPosition + 1, + payloads + ) } } } @@ -282,7 +289,8 @@ abstract class CommonRecyclerAdapter(protected val context: Context) : Rec return footerItems?.size() ?: 0 } - fun getItem(position: Int): ITEM? = if (position in 0 until items.size) items[position] else null + fun getItem(position: Int): ITEM? = + if (position in 0 until items.size) items[position] else null fun getItems(): List = items @@ -305,7 +313,9 @@ abstract class CommonRecyclerAdapter(protected val context: Context) : Rec return when { isHeader(position) -> TYPE_HEADER_VIEW + position isFooter(position) -> TYPE_FOOTER_VIEW + position - getActualItemCount() - getHeaderCount() - else -> getItem(getActualPosition(position))?.let { getItemViewType(it, getActualPosition(position)) } ?: 0 + else -> getItem(getActualPosition(position))?.let { + getItemViewType(it, getActualPosition(position)) + } ?: 0 } } @@ -320,7 +330,13 @@ abstract class CommonRecyclerAdapter(protected val context: Context) : Rec } else -> { - val holder = ItemViewHolder(inflater.inflate(itemDelegates.getValue(viewType).layoutId, parent, false)) + val holder = ItemViewHolder( + inflater.inflate( + itemDelegates.getValue(viewType).layoutId, + parent, + false + ) + ) if (itemClickListener != null) { holder.itemView.setOnClickListener { @@ -347,7 +363,11 @@ abstract class CommonRecyclerAdapter(protected val context: Context) : Rec final override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { } - final override fun onBindViewHolder(holder: ItemViewHolder, position: Int, payloads: MutableList) { + final override fun onBindViewHolder( + holder: ItemViewHolder, + position: Int, + payloads: MutableList + ) { if (!isHeader(holder.layoutPosition) && !isFooter(holder.layoutPosition)) { getItem(holder.layoutPosition - getHeaderCount())?.let { itemDelegates.getValue(getItemViewType(holder.layoutPosition)) @@ -396,10 +416,6 @@ abstract class CommonRecyclerAdapter(protected val context: Context) : Rec } private fun addAnimation(holder: ItemViewHolder) { - if (itemAnimation == null) { - itemAnimation = ItemAnimation.create().enabled(true) - } - itemAnimation?.let { if (it.itemAnimEnabled) { if (!it.itemAnimFirstOnly || holder.layoutPosition > it.itemAnimStartPosition) {