我知道关于RecyclerViews的DiverItemDecoration,尽管每当元素中的某个属性发生变化时,我更感兴趣的不是每个项目之间的分隔符。例如,一个包含过账日期的交易列表——然后在交易列表中的每个日期更改时都会显示一个分隔符。
这肯定是可能的,但我只是不确定是否要这样做。例如,在Monzo应用程序中,是日期分隔了交易行。
任何帮助都将不胜感激!
您将创建一个具有两个视图持有者的回收器视图适配器。在Monzo应用程序的示例中,您将为购买创建一个ViewHolder,为日期创建另一个。然后,在onCreateViewHolder
中,您将为该列表中的该项目填充正确类型的视图夹。
一种方法是将分隔符添加到ViewHolder
布局中,默认为View.INVISIBLE
(如果您希望它在可见时占用额外空间,则为View.GONE
,就像分隔符在列表元素外部而不是顶部边缘内部的一样(
然后在onBindViewHolder
中,你可以做一些逻辑来决定该项目的分隔符是否应该设置为可见-这决定了它是否代表日期更改,并确保检查它也不是列表中的第一个项目(不希望出现随机分隔符(