java - recyclerview-selection 如何监听 onSelectionEnter 事件和 onSelectionExit 事件

标签 java android

我使用以下方法来使用 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();
                }
            }
        }
    });

关于java - recyclerview-selection 如何监听 onSelectionEnter 事件和 onSelectionExit 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59605930/

相关文章:

Java - 从 HashMap 键创建排列

java - Android,动态更改 View ,添加/删除新组件

java - completionTimeOut 或 TimeoutAwareAggregationStrategy 超时

java - 为什么嵌套类不能用作Filter的类

Android - OpenGL ES 的追踪器抛出 "Broken pipe"

android - 将微调器和 ArrayAdapter 与 Enum 结合使用,将微调器文本设置为枚举属性

java - 从线性布局中获取子元素

android - firebase 监听器实际上是如何工作的?

java - 如何在 RecyclerView Item 的 populateViewHolder 中设置 addSnapshotListener 和 remove?

android - 发现具有软件导航栏的 Android 设备的真实屏幕尺寸(以像素为单位)