在 Android Kotlin 的 recyclerView 中仅显示第一个项目并隐藏同名项目
Show only 1st item and hide same name items in recyclerView in Android Kotlin
我只想在 recyclerView 中显示第一个位置的项目并隐藏其他相同的文本项目。就像下图一样。
我知道我可以用 holder.itemView.visibility = View.GONE
隐藏视图,但我应该实现什么条件才能实现这一点?谢谢。
我有一个相反的想法。我觉得应该在 recyclerview 中显示之前过滤列表的唯一性。
有这样的东西:
data class Fruits(val name: String, val timeStamp :String)
val fruits = listOf(
Fruits("Apples", "Foo"),
Fruits("Apples", "Bar"),
Fruits("Oranges", "Foo"),
Fruits("Apples", "Bar")
)
然后使用:
fruits.distinctBy{
it.name
}
应该删除具有相同名称的重复项,这是您传递给适配器的内容
我可以解决这个问题
通过
获取之前的位置
if(position > 0) {
val previousPosition = cellList[position -1]
}
并与当前位置进行比较。
感谢大家的帮助!
我想完成我朋友罗宾的回答
如果你想保留第一项,你也应该对它们进行排序
fruits.sortedByDescending { it.date }.distinctBy { it.name }
我只想在 recyclerView 中显示第一个位置的项目并隐藏其他相同的文本项目。就像下图一样。
我知道我可以用 holder.itemView.visibility = View.GONE
隐藏视图,但我应该实现什么条件才能实现这一点?谢谢。
我有一个相反的想法。我觉得应该在 recyclerview 中显示之前过滤列表的唯一性。
有这样的东西:
data class Fruits(val name: String, val timeStamp :String)
val fruits = listOf(
Fruits("Apples", "Foo"),
Fruits("Apples", "Bar"),
Fruits("Oranges", "Foo"),
Fruits("Apples", "Bar")
)
然后使用:
fruits.distinctBy{
it.name
}
应该删除具有相同名称的重复项,这是您传递给适配器的内容
我可以解决这个问题
通过
获取之前的位置if(position > 0) {
val previousPosition = cellList[position -1]
}
并与当前位置进行比较。 感谢大家的帮助!
我想完成我朋友罗宾的回答 如果你想保留第一项,你也应该对它们进行排序
fruits.sortedByDescending { it.date }.distinctBy { it.name }