首页 > 解决方案 > 使recyclerview选择跟踪器的选择模式仅在长按时激活

问题描述

创建了一个 recyclerview 并添加了recyclerview-selection 1.0.0跟踪选择,选择跟踪器的实现工作正常,除了在 r​​ecyclerview 模式上简单的单击/点击即可启动选择。我的印象是,开箱即用的跟踪器仅在用户长按允许的 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);

标签: androidandroid-recyclerview

解决方案


在您的ItemDetailsLookup.ItemDetails实现中设置inSelectionHotspotfalse. 这可以防止通过单击进行选择。

override fun inSelectionHotspot(s: MotionEvent): Boolean = false 

推荐阅读