CardSwipeLayout icon indicating copy to clipboard operation
CardSwipeLayout copied to clipboard

点击事件和卡片滑动有冲突

Open ThugKd opened this issue 6 years ago • 4 comments

我在三星s8上 点击事件和卡片滑动有冲突

ThugKd avatar Aug 08 '18 09:08 ThugKd

我试了一下 三星手机都有问题 点击的时候卡片会微微晃动一下

ThugKd avatar Aug 09 '18 01:08 ThugKd

重写 CardLayoutManager onTouchListener


private float touchDownX;
private float touchDownY;
private final View.OnTouchListener mOnTouchListener = new View.OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        RecyclerView.ViewHolder childViewHolder = mRecyclerView.getChildViewHolder(v);
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                touchDownX = event.getX();
                touchDownY = event.getY();
                return false;
            case MotionEvent.ACTION_MOVE:
                boolean needSwipe = (Math.abs(touchDownX - event.getX()) >= ViewConfiguration.get(
                        mRecyclerView.getContext()).getScaledTouchSlop())
                        || (Math.abs(touchDownY - event.getY()) >= ViewConfiguration.get(
                        mRecyclerView.getContext()).getScaledTouchSlop());
                if (needSwipe) {
                    mItemTouchHelper.startSwipe(childViewHolder);
                    return false;
                }
                return true;
        }
        return v.onTouchEvent(event);
    }
};

cvmars avatar Mar 04 '19 06:03 cvmars

重写CardLayoutManager onTouchListener好像也不行呀

ender115 avatar May 20 '20 09:05 ender115

我的需求是这样的,在RecyclerView的item里面放了一个ImageView,ImageView的点击事件和滑动事件有冲突,我是这样处理的

//1单击 2左滑 3右滑
private int isMoveType = 1;

2021101315234220211013152500 20211013152556 20211013152628

如果有问题,+vx:18588400509

cctxwan avatar Oct 13 '21 07:10 cctxwan