Java 如何仅在RecyclerView中的某些元素之间添加分隔符?

Java 如何仅在RecyclerView中的某些元素之间添加分隔符?,java,android,kotlin,android-recyclerview,Java,Android,Kotlin,Android Recyclerview,我知道关于RecyclerViews的DividerItemDecoration,尽管我更感兴趣的不是每个项目之间的分隔符,而是每当元素中的某个属性发生变化时的分隔符。例如,保存过账日期的交易列表-然后在交易列表中的每次日期更改时都会显示分隔符 这是绝对可能的,但我只是不确定是否要去做。例如,在应用程序中,是日期分隔了事务行 任何帮助都将不胜感激 您将创建一个具有两个视图保持架的回收器视图适配器。在Monzo应用程序的示例中,您将为购买创建一个ViewHolder,为日期创建另一个ViewHol

我知道关于RecyclerViews的DividerItemDecoration,尽管我更感兴趣的不是每个项目之间的分隔符,而是每当元素中的某个属性发生变化时的分隔符。例如,保存过账日期的交易列表-然后在交易列表中的每次日期更改时都会显示分隔符

这是绝对可能的,但我只是不确定是否要去做。例如,在应用程序中,是日期分隔了事务行


任何帮助都将不胜感激

您将创建一个具有两个视图保持架的回收器视图适配器。在Monzo应用程序的示例中,您将为购买创建一个ViewHolder,为日期创建另一个ViewHolder。然后在
onCreateViewHolder
中,您将为该列表中的项目膨胀正确类型的viewholder。

一种方法是将分隔符添加到
viewholder
布局中,默认为
View.INVISIBLE
(或
View.GONE
如果您希望它在可见时占用额外的空间-就像分隔符位于列表元素的外部而不是顶部边缘的内部)


然后在
onBindViewHolder
中,您可以做一些逻辑来决定该项的分隔符是否应设置为可见-这决定了它是否表示日期更改,并确保检查它也不是列表中的第一项(不要在上面设置随机分隔符)

您可以使用带有if语句的分隔符的setVisibility。试试看这个。就像一个符咒!谢谢:)