Android recyclerview-selection только один элемент - PullRequest
0 голосов
/ 11 января 2019

Я реализовал recyclerView-Selection API с одним выбором со следующим кодом:

selectionTracker = SelectionTracker.Builder<Long>(SELECTION_ID,recyclerView,
Adapter.MessagesItemKeyProvider(1),
Adapter.MessagesItemLookup(messagesRecyclerView),
StorageStrategy.createLongStorage()).withSelectionPredicate(SelectionPredicates.createSelectSingleAnything()).build()`

Теперь мой recyclerView - это только один элемент, который можно выбрать.

При выборе другого элемента вместо замены выбора мне нужно очистить только текущий выбор?

1 Ответ

0 голосов
/ 05 февраля 2019

Чтобы разрешить одиночный выбор, вам нужно просто указать SelectionPredicate в свой SelectionTracker.Builder.

final SelectionTracker<Long> tracker = new SelectionTracker.Builder<>(
    "my-selection-id",
    recyclerView,
    provider,
    detailLookup,
    StorageStrategy.createLongStorage())
    .withSelectionPredicate(new SelectionTracker.SelectionPredicate<Long>() {
        @Override
        public boolean canSetStateForKey(@NonNull Long key, boolean nextState) {
            return true;
        }

        @Override
        public boolean canSetStateAtPosition(int position, boolean nextState) {
            return true;
        }

        @Override
        public boolean canSelectMultiple() {
            return false; // Set to false to allow single selecting
        }
    })
    .build();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...