android - 使recyclerview选择跟踪器的选择模式仅在长按时激活
问题描述
创建了一个 recyclerview 并添加了recyclerview-selection 1.0.0
跟踪选择,选择跟踪器的实现工作正常,除了在 recyclerview 模式上简单的单击/点击即可启动选择。我的印象是,开箱即用的跟踪器仅在用户长按允许的 recyclerview 行时才允许选择模式,如何防止在行点击时触发选择模式?我尝试了以下无济于事
selectionTracker = new SelectionTracker.Builder<>("connection_selection",
recyclerView,
new TransactionHistoryListAdapter.KeyProvider(adapter),
new TransactionHistoryListAdapter.DetailsLookup(recyclerView),
StorageStrategy.createStringStorage())
.withSelectionPredicate(SelectionPredicates.<String>createSelectAnything())
.withOnItemActivatedListener(new OnItemActivatedListener<String>() {
@Override
public boolean onItemActivated(@NonNull ItemDetailsLookup.ItemDetails<String> item, @NonNull MotionEvent e) {
return false;
}
})
.withOnDragInitiatedListener(new OnDragInitiatedListener() {
@Override
public boolean onDragInitiated(@NonNull MotionEvent e) {
Log.d(TAG, "onDragInitiated");
return true;
}
})
.build();
adapter.setSelectionTracker(selectionTracker);
解决方案
在您的ItemDetailsLookup.ItemDetails
实现中设置inSelectionHotspot
为false
. 这可以防止通过单击进行选择。
override fun inSelectionHotspot(s: MotionEvent): Boolean = false
推荐阅读
- html - 如果我尝试以优美的方式编写代码,为什么会出现差距?
- java - 如何使用 Gradle 自定义插件添加常见依赖项
- android - 如何为智能眼镜定制 android 操作系统?
- reactjs - 如何在组件级别获取 API 并在 nextjs 中预渲染?
- android-recyclerview - 如何将数据从片段传递到适配器回收器视图?
- css - 使用简单的滑块菜单,但即使在滑块和页面翻译之后菜单项也被隐藏
- java - 如何以循环方式合并 3 个 ArrayLists 创建一个新列表?
- java - maven-compiler-plugin 中使用的 release 标记/属性和 compilerVersion 标记/属性之间的区别。升级到 java 11 时的问题
- java - Spring jar 版本不兼容,因此出现编译器错误。需要帮助来确定导致问题的依赖项
- python-3.x - 如何添加到 Django 中的 JSON 字段