【发布时间】:2020-06-28 16:49:18
【问题描述】:
我用 ConcatAdapter 制作了一个 recyclerview,想法是每个适配器都有 2 个视图类型,一个用于标题,一个用于项目,现在,当在所有这些适配器上应用带有 itemDecorator 的分隔器时,它应用于每个视图类型,但我不想将装饰器应用于所有视图类型,而是在内容视图类型之后
//Merge all together
val concatAdapter = ConcatAdapter(
firstConcatAdapter,
secondConcatAdapter,
thirdConcatAdapter
)
val dividerItemDecorationInstance =
DividerItemDecoration(requireContext(), LinearLayoutManager.VERTICAL)
test_rv.addItemDecoration(dividerItemDecorationInstance)
dividerItemDecorationInstance.setDrawable(
ContextCompat.getDrawable(
requireContext(),
R.drawable.recycler_home_divider
)!!
)
test_rv.layoutManager = LinearLayoutManager(requireContext())
test_rv.adapter = concatAdapter
所以这里的 test_rv 是一个 recyclerview,我在这个 recyclerview 中膨胀了不同的适配器,在其中我显示了 UI 的不同自定义部分,每个适配器,firstConcatAdapter 等都有 2 个视图类型,它有一个标题,然后是项目,但我的输出是这样的
所以这里发生的事情是分隔线也适用于标题视图类型,我不希望它显示在那里,我只需要在所有视图都用它的视图类型膨胀后的分隔线
【问题讨论】:
标签: android kotlin android-recyclerview android-adapter item-decoration