我使用以下代码通过一次选择实现了recyclerView-Selection
API:
selectionTracker = SelectionTracker.Builder<Long>(SELECTION_ID,recyclerView,
Adapter.MessagesItemKeyProvider(1),
Adapter.MessagesItemLookup(messagesRecyclerView),
StorageStrategy.createLongStorage()).withSelectionPredicate(SelectionPredicates.createSelectSingleAnything()).build()`
现在,我的recyclerView
只是一个可以选择的项目。
选择其他项目时,我不需要清除当前选择,而不是替换选择?
答案 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();