如何使用 androidx.recyclerview.selection select Recyclerview 中列出的所有项目?

How to select all items listed in Recyclerview using androidx.recyclerview.selection?

我正在使用 androidx.recyclerview.selectionRecyclerView 中选择项目。 我正在尝试构建一个编辑片段,在其中预填充 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())