如何使用 androidx.recyclerview.selection select Recyclerview 中列出的所有项目?
How to select all items listed in Recyclerview using androidx.recyclerview.selection?
我正在使用 androidx.recyclerview.selection
在 RecyclerView
中选择项目。
我正在尝试构建一个编辑片段,在其中预填充 RecyclerView
中的旧视图。目前,我能够从 API 调用加载旧值并通过 notifyDataSetChanged
调用更新适配器的列表。但我希望列表中的所有项目都被选中,换句话说,我想在片段加载时以某种方式将所有项目添加到 SelectionTracker
对象。
每当调用 notifyDataSetChanged
时,我都可以看到 SelectionTracker
的观察器 onSelectionRefresh()
被触发,但我无法在那里更新选择跟踪器,因为它正在进行无限调用循环。
val size = documents.size
for(number in 0 until size){
(tracker as SelectionTracker<Long>?)?.select(number.toLong())
}
使用从 0 开始的 for 循环将 recyclerview 的所有位置传递到单个项目的总数。
SelectionTracker.setItemsSelected:
selectionTracker?.setItemsSelected(listOfKeysToBeSelected, true)
您 select RecyclerView
适配器中的每一项都在迭代中。
假设您的密钥是 Long
:
for (i in 0 until recyclerAdapter.itemCount)
selectionTracker.select(i.toLong())
我正在使用 androidx.recyclerview.selection
在 RecyclerView
中选择项目。
我正在尝试构建一个编辑片段,在其中预填充 RecyclerView
中的旧视图。目前,我能够从 API 调用加载旧值并通过 notifyDataSetChanged
调用更新适配器的列表。但我希望列表中的所有项目都被选中,换句话说,我想在片段加载时以某种方式将所有项目添加到 SelectionTracker
对象。
每当调用 notifyDataSetChanged
时,我都可以看到 SelectionTracker
的观察器 onSelectionRefresh()
被触发,但我无法在那里更新选择跟踪器,因为它正在进行无限调用循环。
val size = documents.size
for(number in 0 until size){
(tracker as SelectionTracker<Long>?)?.select(number.toLong())
}
使用从 0 开始的 for 循环将 recyclerview 的所有位置传递到单个项目的总数。
SelectionTracker.setItemsSelected:
selectionTracker?.setItemsSelected(listOfKeysToBeSelected, true)
您 select RecyclerView
适配器中的每一项都在迭代中。
假设您的密钥是 Long
:
for (i in 0 until recyclerAdapter.itemCount)
selectionTracker.select(i.toLong())