我知道关于recyclerviews的divideritemdecoration,尽管我更感兴趣的是在元素中某个属性发生变化时使用分隔符,而不是每个项目之间的分隔符。例如,保存过帐日期的事务列表-然后在事务列表中的每个日期更改处都会显示分隔符。这是绝对可能的,但我只是不确定要去做。例如,在monzo应用程序中,是日期分隔了事务行。任何帮助都将不胜感激!
mwkjh3gx1#
一种方法是将分隔符添加到 ViewHolder 布局,默认为 View.INVISIBLE (或 View.GONE 如果您希望它在可见时占用额外的空间(比如分隔符在列表元素的外部,而不是顶部边缘的内部)然后在 onBindViewHolder 您可以做一些逻辑来决定是否应该为该项将分隔符设置为visible或not—决定它是否表示日期更改,并确保检查它也不是列表中的第一项(不要在上面使用随机分隔符)
ViewHolder
View.INVISIBLE
View.GONE
onBindViewHolder
wqnecbli2#
您将创建一个具有两个viewholder的recycler视图适配器。在monzo应用程序的示例中,您将为购买创建一个viewholder,为日期创建另一个viewholder。然后在 onCreateViewHolder 您可以为该列表中的项充气正确类型的viewholder。
onCreateViewHolder
2条答案
按热度按时间mwkjh3gx1#
一种方法是将分隔符添加到
ViewHolder
布局,默认为View.INVISIBLE
(或View.GONE
如果您希望它在可见时占用额外的空间(比如分隔符在列表元素的外部,而不是顶部边缘的内部)然后在
onBindViewHolder
您可以做一些逻辑来决定是否应该为该项将分隔符设置为visible或not—决定它是否表示日期更改,并确保检查它也不是列表中的第一项(不要在上面使用随机分隔符)wqnecbli2#
您将创建一个具有两个viewholder的recycler视图适配器。在monzo应用程序的示例中,您将为购买创建一个viewholder,为日期创建另一个viewholder。然后在
onCreateViewHolder
您可以为该列表中的项充气正确类型的viewholder。