在 Android Kotlin 的 recyclerView 中仅显示第一个项目并隐藏同名项目

Posted

技术标签:

【中文标题】在 Android Kotlin 的 recyclerView 中仅显示第一个项目并隐藏同名项目【英文标题】:Show only 1st item and hide same name items in recyclerView in Android Kotlin 【发布时间】:2022-01-08 18:38:54 【问题描述】:

我想只显示第一个位置项并在 recyclerView 中隐藏其他相同的文本项。就像下图一样。

我知道我可以用holder.itemView.visibility = View.GONE 隐藏视图,但是我应该实现什么条件来实现呢?谢谢。

【问题讨论】:

请分享您的 recyclerview 适配器的代码,以便我可以为您提供更改后的代码。 【参考方案1】:

我有一个反击的想法。我觉得在 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

应该删除具有相同名称的重复项,这是您传递给适配器的内容

【讨论】:

【参考方案2】:

我可以解决这个问题 How do I display the calendar date on the top of chat messages?

获取以前的位置

if(position > 0) 
            val previousPosition = cellList[position -1]
        

并与当前位置进行比较。 谢谢大家的帮助!

【讨论】:

【参考方案3】:

我想完成我朋友罗宾的回答 如果你想保留第一个项目,你也应该对它们进行排序

fruits.sortedByDescending  it.date .distinctBy  it.name 

【讨论】:

以上是关于在 Android Kotlin 的 recyclerView 中仅显示第一个项目并隐藏同名项目的主要内容,如果未能解决你的问题,请参考以下文章

Recycler View 和 DialogFragment 苦苦挣扎(Kotlin)

kotlin Recycler查看分页

kotlin android中Recyclerview的适配器类

kotlin android中Recyclerview的适配器类

java.lang.IllegalStateException: TextView 不能为空 (Android/Kotlin)

如何在 kotlin 的 Recycler View Adapter 中添加更多数据列表而不清除先前的数据?