仅限Android recyclerview-selection单项

时间:2019-01-11 13:14:05

标签: android android-recyclerview selection

我使用以下代码通过一次选择实现了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 :(得分:0)

为了允许单选,您只需要在SelectionTracker.Builder中提供一个SelectionPredicate

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();