无需长按即可在 recyclerView 中重新排序项目

che*_*ets 5 java android android-recyclerview

我使用itemTouchHelper.callbackrecyclerView 中实现了项目的重新排序,因为它现在似乎是最流行的解决方案。但是,这仅允许在长按任何项目后重新排序,并且我需要能够随时自由移动项目(我为“编辑模式”附加了项目itemTouchHelper并在之后立即分离。实现这一目标的最简单方法是什么?

小智 6

首先在 itemTouchHelper 中禁用 LongPressDragEnabled ,然后只需从自定义句柄视图(即 Imageview 或类似内容)的触摸中调用startDrag(RecyclerView.ViewHolder)

viewHolder.dragButton.setOnTouchListener(new View.OnTouchListener() {
         public boolean onTouch(View v, MotionEvent event) {
             if (MotionEvent.getActionMasked(event) == MotionEvent.ACTION_DOWN) {
                 mItemTouchHelper.startDrag(viewHolder);
             }
             return false;
         }
     });
Run Code Online (Sandbox Code Playgroud)