【问题标题】:How do you filter & sort a RecyclerView that uses LiveData (without using a SearchView)如何过滤和排序使用 LiveData 的 RecyclerView(不使用 SearchView)
【发布时间】:2021-02-19 17:53:32
【问题描述】:

所以我说的是一个 RecyclerView,它显示从服务器/数据库查询的过滤/排序的项目列表(过滤/排序标准是预设的,不取决于用户,所以使用 SearchView 没有意义)。

我想过在我的自定义适配器的setData 函数中进行排序/过滤,如下所示:

fun setData(items: List<GenericObject>) {
    mValues.clear()
    mValues.addAll(items)
    mValues.filter { // filter conditions }
    notifyDataSetChanged()
}

但这似乎不起作用。我可以使用哪些替代方法,或者首选的方法是什么?

【问题讨论】:

    标签: kotlin android-recyclerview android-livedata


    【解决方案1】:

    适配器不负责排序。提供数据的人有责任。

    实际上,您可以将 ListAdapter 用于您的 RecyclerView + livedata.map { list -&gt; list.filter {...}}

    【讨论】:

    • 对对对。我通过使用MediatorLiveData 并使用过滤后的列表作为来源解决了这个问题。
    猜你喜欢
    • 2015-08-04
    • 1970-01-01
    • 2016-10-29
    • 2020-01-01
    • 1970-01-01
    • 2020-02-07
    • 1970-01-01
    • 1970-01-01
    • 2019-12-28
    相关资源
    最近更新 更多