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



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

这肯定是可能的,但我只是不确定是否要这样做。例如,在Monzo应用程序中,是日期分隔了交易行。

任何帮助都将不胜感激!

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

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

然后在onBindViewHolder中,你可以做一些逻辑来决定该项目的分隔符是否应该设置为可见-这决定了它是否代表日期更改,并确保检查它也不是列表中的第一个项目(不希望出现随机分隔符(

最新更新