开发者社区> 问答> 正文

recyclerview-selection如何监听事件onSelectionEnter和事件onS

我使用以下命令来使用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时,我必须检测所有项目的状态,每个状态都会渲染每个项目

展开
收起
Puppet 2020-01-06 15:23:50 733 0
1 条回答
写回答
取消 提交回答
  • 我找到解决方案:

    
      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();
                    }
                }
            }
        }); 
    
    2020-01-06 15:24:15
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载