java - recyclerview-selection 如何监听事件 onSelectionEnter 和事件 onSelectionExit
问题描述
我使用以下来使用recyclerview-selection:
selectionTracker = new SelectionTracker.Builder<>("lazy-load-img-list-selection", this.recyclerView, new KeyProvider(1), new Lookup(), StorageStrategy.createLongStorage()).build();
我预计
selectionTracker.setOnSelectionEnter
selectionTracker.setOnSelectionExit
切换按钮“删除选择”“清除选择”可见性
怎么做?
更新:
我可以检测选择状态回收器适配器#onBindViewHolder,但这不是好方法,当确定onSelectionExit时,我必须检测所有项目状态每个渲染每个项目
解决方案
我找到解决方案:
selectionTracker.addObserver(new SelectionTracker.SelectionObserver() {
@Override
public void onItemStateChanged(@NonNull Object key, boolean selected) {
super.onItemStateChanged(key, selected);
Selection selection = selectionTracker.getSelection();
if (selected && selection.size() == 1) {
if (onSelectionEnter != null) {
onSelectionEnter.run();
}
} else if (!selected && selection.size() == 0) {
if (onSelectionExit != null) {
onSelectionExit.run();
}
}
}
});
推荐阅读
- c# - 由于文件过大,无法将 JSON 文件上传到 Azure Cosmos DB
- django - 在 django 中突出显示搜索到的文本
- netsuite - 在工作流操作脚本中获取工作流字段值
- google-cloud-platform - 谷歌云:计算虚拟机实例每天自动关闭,如何停止?
- matlab - 如何将加权因子添加到邻接矩阵中?
- amazon-web-services - 运行 amplify init --appId XXX 时出现语法错误
- android - 了解 Android Room 迁移,应用程序的首次和后续运行
- arrays - 快速获取数组中的一个数组
- android - GsonBuilder().excludeFieldsWithModifiers() 在迁移到 AndroidX 后无法在发布版本中工作
- mysql - 从 MySQL 中现有表行的总和创建新表