如何过滤和排序使用 LiveData 的 RecyclerView(不使用 SearchView)
How do you filter & sort a RecyclerView that uses LiveData (without using a SearchView)
所以我说的是一个显示 filtered/sorted 项目列表的 RecyclerView(filter/sort 标准是预设的,不取决于用户,所以没有必要使用 SearchView)从server/DB.
我考虑过在自定义适配器的 setData
函数中执行 sorting/filtering,如下所示:
fun setData(items: List<GenericObject>) {
mValues.clear()
mValues.addAll(items)
mValues.filter { // filter conditions }
notifyDataSetChanged()
}
但这似乎不起作用。我可以使用哪些替代方法,或者首选的方法是什么?
适配器不负责排序。这是谁提供数据的责任。
您实际上可以将 ListAdapter
用于您的 RecyclerView + livedata.map { list -> list.filter {...}}
所以我说的是一个显示 filtered/sorted 项目列表的 RecyclerView(filter/sort 标准是预设的,不取决于用户,所以没有必要使用 SearchView)从server/DB.
我考虑过在自定义适配器的 setData
函数中执行 sorting/filtering,如下所示:
fun setData(items: List<GenericObject>) {
mValues.clear()
mValues.addAll(items)
mValues.filter { // filter conditions }
notifyDataSetChanged()
}
但这似乎不起作用。我可以使用哪些替代方法,或者首选的方法是什么?
适配器不负责排序。这是谁提供数据的责任。
您实际上可以将 ListAdapter
用于您的 RecyclerView + livedata.map { list -> list.filter {...}}