Как не выбрать все выбранные элементы в SelectionTracker Recyclerview, даже если некоторые элементы прокручиваются с экрAndroid

Форум для тех, кто программирует под Android
Anonymous
Как не выбрать все выбранные элементы в SelectionTracker Recyclerview, даже если некоторые элементы прокручиваются с экр

Сообщение Anonymous »

Я использую SelectionTracker для реализации множественного выбора Recyclerview. Функция Select/Unselect работает так же, как и ожидалось, если я сделаю это вручную (элемент находится на экране, и я меняю его состояние, нажав), но если я попытаюсь не выбрать все элементы, некоторые из которых находятся вне экрана, используя метод очистки отслеживания выбора. Только не выбирает элементы, которые в настоящее время видны на экране.

Код: Выделить всё

tracker = SelectionTracker.Builder(
"mySelection",
recyclerView,
MyKeyProvider(recyclerView),
MyItemDetailsLookup(recyclerView),
StorageStrategy.createLongStorage()
).withSelectionPredicate(
SelectionPredicates.createSelectAnything()
).build()
recyclerAdapter.tracker = tracker
следующее - binditem и onbindviewholder Методы Viewholder и адаптер соответственно < Br />

Код: Выделить всё

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()))
}
}
Я вызываю метод чистого выбора на щелчке элемента меню

Код: Выделить всё

override fun onOptionsItemSelected(item: MenuItem?): Boolean {
if((selectionMode) && (item?.itemId==android.R.id.home)){
tracker.clearSelection()
}
return super.onOptionsItemSelected(item)
}
Редактировать: это, кажется, ошибка в библиотеке, я столкнулся с той же проблемой, используя приложение Android Gmail, которое, я думаю, должен использовать SelectionTracker

Подробнее здесь: https://stackoverflow.com/questions/565 ... even-if-so

Вернуться в «Android»