From 7ba5feadd86db565a49953cd727a642b472809ab Mon Sep 17 00:00:00 2001 From: Goooler Date: Wed, 29 Jun 2022 15:47:53 +0800 Subject: [PATCH 1/3] Let spanCount as the default size if layoutManager is not GridLayoutManager --- .../io/goooler/demoapp/adapter/rv/core/RvAdapterHelper.kt | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/adapter/src/main/kotlin/io/goooler/demoapp/adapter/rv/core/RvAdapterHelper.kt b/adapter/src/main/kotlin/io/goooler/demoapp/adapter/rv/core/RvAdapterHelper.kt index e39adcb65..04e636e3c 100644 --- a/adapter/src/main/kotlin/io/goooler/demoapp/adapter/rv/core/RvAdapterHelper.kt +++ b/adapter/src/main/kotlin/io/goooler/demoapp/adapter/rv/core/RvAdapterHelper.kt @@ -7,7 +7,6 @@ import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.StaggeredGridLayoutManager import io.goooler.demoapp.adapter.rv.core.ISpanSize.Companion.SPAN_SIZE_FULL -import io.goooler.demoapp.adapter.rv.core.ISpanSize.Companion.SPAN_SIZE_SINGLE /** * Created on 2020/10/22. @@ -124,10 +123,9 @@ internal class RvAdapterHelper(private val adapter: IRvAdapter (recyclerView.layoutManager as? GridLayoutManager)?.let { it.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() { override fun getSpanSize(position: Int): Int { - (adapter[position] as? ISpanSize)?.spanSize?.let { size -> - return if (size == SPAN_SIZE_FULL) it.spanCount else size - } - return SPAN_SIZE_SINGLE + return (adapter[position] as? ISpanSize)?.spanSize?.let { size -> + if (size == SPAN_SIZE_FULL) it.spanCount else size + } ?: it.spanCount } } } From 12eacd4c40b44b01187246c57c8483fb678c2872 Mon Sep 17 00:00:00 2001 From: Goooler Date: Wed, 29 Jun 2022 15:48:37 +0800 Subject: [PATCH 2/3] Let subList as Iterable --- .../io/goooler/demoapp/adapter/rv/core/IVhModelWrapper.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adapter/src/main/kotlin/io/goooler/demoapp/adapter/rv/core/IVhModelWrapper.kt b/adapter/src/main/kotlin/io/goooler/demoapp/adapter/rv/core/IVhModelWrapper.kt index e8ae1a72d..8ae60626e 100644 --- a/adapter/src/main/kotlin/io/goooler/demoapp/adapter/rv/core/IVhModelWrapper.kt +++ b/adapter/src/main/kotlin/io/goooler/demoapp/adapter/rv/core/IVhModelWrapper.kt @@ -19,5 +19,5 @@ interface IVhModelWrapper : IVhModelType { /** * As sub model list. */ - val subList: List + val subList: Iterable } From 5aa9f8cce4cc50359e12a825f80adc74adbd7c63 Mon Sep 17 00:00:00 2001 From: Goooler Date: Wed, 29 Jun 2022 15:49:11 +0800 Subject: [PATCH 3/3] Cleanup --- .../io/goooler/demoapp/adapter/rv/core/RvAdapterHelper.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/adapter/src/main/kotlin/io/goooler/demoapp/adapter/rv/core/RvAdapterHelper.kt b/adapter/src/main/kotlin/io/goooler/demoapp/adapter/rv/core/RvAdapterHelper.kt index 04e636e3c..9eb57243e 100644 --- a/adapter/src/main/kotlin/io/goooler/demoapp/adapter/rv/core/RvAdapterHelper.kt +++ b/adapter/src/main/kotlin/io/goooler/demoapp/adapter/rv/core/RvAdapterHelper.kt @@ -123,9 +123,10 @@ internal class RvAdapterHelper(private val adapter: IRvAdapter (recyclerView.layoutManager as? GridLayoutManager)?.let { it.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() { override fun getSpanSize(position: Int): Int { - return (adapter[position] as? ISpanSize)?.spanSize?.let { size -> - if (size == SPAN_SIZE_FULL) it.spanCount else size - } ?: it.spanCount + (adapter[position] as? ISpanSize)?.spanSize?.let { size -> + return if (size == SPAN_SIZE_FULL) it.spanCount else size + } + return it.spanCount } } }