Wie kann ich alle ausgewählten Elemente in Recyclerviews SelectionTracker abschließen, auch wenn einige Elemente vom Bil
Posted: 14 Feb 2025, 12:40
Ich verwende SelectionTracker, um eine Mehrfachauswahlrecyclerview zu implementieren. Die Funktion für ausgewählte/nicht ausgewählte Funktionen funktioniert wie erwartet, wenn ich es manuell mache (das Element steht auf dem Bildschirm und ich ändere seinen Zustand durch Tippen), aber wenn ich versuche, alle Elemente zu versichern, von denen einige außerhalb des Bildschirms sind, unter Verwendung der ClearSelection -Methode des Auswahl -Tracker Die Elemente, die derzeit auf dem Bildschirm sichtbar sind
Folgendes finden Br />
Ich rufe die Methode für klare Auswahl auf einen Menüelement auf [/b]
Bearbeiten: Dies scheint ein Fehler in der Bibliothek zu sein. Ich habe das gleiche Problem bei der Verwendung der Android -Google Mail -App angetroffen, die meiner Meinung nach SelectionTracker
Code: Select all
tracker = SelectionTracker.Builder(
"mySelection",
recyclerView,
MyKeyProvider(recyclerView),
MyItemDetailsLookup(recyclerView),
StorageStrategy.createLongStorage()
).withSelectionPredicate(
SelectionPredicates.createSelectAnything()
).build()
recyclerAdapter.tracker = tracker
Code: Select all
fun bindItems(model: Model, isActivated: Boolean) {
itemView.isActivated = isActivated
if(itemView.isActivated){
/* Do something */
}
else{
/* Do something */
}
}
override fun onBindViewHolder(holder: RecyclerAdapter.ViewHolder, position: Int) {
val number = displayList[position]
tracker?.let {
holder.bindItems(number, it.isSelected(position.toLong()))
}
}
Code: Select all
override fun onOptionsItemSelected(item: MenuItem?): Boolean {
if((selectionMode) && (item?.itemId==android.R.id.home)){
tracker.clearSelection()
}
return super.onOptionsItemSelected(item)
}