Android 阻止ItemDecorator向我的视图类型添加分隔符

Android 阻止ItemDecorator向我的视图类型添加分隔符,android,kotlin,android-recyclerview,android-adapter,item-decoration,Android,Kotlin,Android Recyclerview,Android Adapter,Item Decoration,我用ConcatAdapter制作了一个recyclerview,其思想是每个适配器都有2个视图类型,一个用于标题,一个用于项目,现在,当在所有这些适配器上应用带有itemDecorator的分隔符时,它将应用于每个视图类型,但我不想将装饰器应用于所有视图类型,而是在内容视图类型之后 //Merge all together val concatAdapter = ConcatAdapter( firstConcatAdapter,

我用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个视图类型,它有一个标题,然后是项目,但我的输出是这样的


因此,这里发生的事情是分隔符也应用于标题视图类型,我不希望它显示在那里,我只需要在所有视图使用其视图类型充气后使用分隔符

您可以扩展
项目装饰
并使您的逻辑根据项目类型显示分隔符,假设项目类型为(标题项目

行类型枚举

enum class RowType {
ITEM,
HEADER;
}
使用物品装饰

val dividerHeightInPixels = resources.getDimensionPixelSize(R.dimen.1sdp)
val dividerItemDecoration = HorizontalItemDecoration(ContextCompat.getColor(requireContext(), R.color.divider_color), dividerHeightInPixels)
recyclerView.addItemDecoration(dividerItemDecoration)

什么是leftToFloat?只是一个输入错误,在我的适配器中修复了它所以我需要使用enum类而不是private const val HEADER=0?你可以使用它们中的任何一个因为我为itemDecorator使用了一个drawable,你能改变构造函数来传递drawable吗?谢谢
val dividerHeightInPixels = resources.getDimensionPixelSize(R.dimen.1sdp)
val dividerItemDecoration = HorizontalItemDecoration(ContextCompat.getColor(requireContext(), R.color.divider_color), dividerHeightInPixels)
recyclerView.addItemDecoration(dividerItemDecoration)