【问题标题】:Recyclerview drag operation after item long click项目长按后Recyclerview拖拽操作
【发布时间】:2016-07-12 18:12:01
【问题描述】:

我试图在用户长按 Recyclerview 项目并向下或向上滑动后执行拖动操作。长按时,我已经开始动作模式,所以在用户长按后向下/向上滑动后,只需开始拖动。我尝试在 Recyclerview 上实现 onTouch 侦听器,但它没有收到 ACTION_DOWN 事件。当手指松开时,它只接收 ACTION_MOVE 和 ACTION_UP。在手势监听器中,我开始拖动。但是在这种情况下如何捕获 ACTION_DOWN 或向下/向上滑动?

我不想移动 ItemTouchHelper 或拖动排序列表视图等项目。

 recyclerAdapter.setOnItemLongClickListener(new Recycler.OnItemLongClickListener() {
        @Override
        public void onItemLongClick(View view, int position) {
                getActivity().startActionMode(this);
                mStartDrag = true;
   }});

recyclerViewList.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            Logger.log("TAG", "On item touch"+ motionEvent.getActionMasked()); // Returns 2 (ACTION_MOVE)

            if (mStartDrag) {

                if (gestureDetector.onTouchEvent(motionEvent)) {
                    return false;
                }
            }
            return false;
        }
    });

【问题讨论】:

标签: android drag-and-drop android-recyclerview


【解决方案1】:
viewHolder.drag.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            mStartDragListener.onStartDrag(viewHolder);
            return false;
        }
    });

【讨论】:

  • 评论:可以使用一些解释以及纯代码解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-11
  • 2011-06-14
  • 2021-11-18
  • 1970-01-01
  • 2021-10-20
  • 1970-01-01
相关资源
最近更新 更多