【问题标题】:sequence concatadapter based on data type基于数据类型的序列连接适配器
【发布时间】:2022-10-21 15:12:49
【问题描述】:
是否可以根据数据类型使用连接适配器。
连接适配器的正常实现是
val concatadapter = listOf(firstAdapter, secondAdapter, thirdAdapter)
在尝试此代码时,
for (nums in 0..15) {
if (nums % 2 == 0) {
concatAdapter.add(firstAdapter)
} else {
concatAdapter.add(secondAdapter)
}
}
将显示第一个“firstAdapter”和“secondAdapter”。
但不显示下一个“firstAdapter”和“secondAdapter”。
这段代码有什么问题吗?
【问题讨论】:
标签:
android
kotlin
android-concatadapter
【解决方案1】:
其他适配器不可见的原因是因为您正在添加相同的对象“第一个适配器”和“第二个适配器”每次在 concat 适配器中,您都必须初始化“第一个适配器”和“第二个适配器”添加到 concat 适配器时,如下所示:
concatAdapter=ConcatAdapter()
for (nums in 0..15) {
if (nums % 2 == 0) {
concatAdapter.addAdapter(FirstAdapter(nums))
} else {
concatAdapter.addAdapter(SecondAdapter(nums))
}
}
var layoutManager = LinearLayoutManager(this, RecyclerView.VERTICAL, false)
binding.recycler.layoutManager = layoutManager
binding.recycler.adapter=concatAdapter