美文网首页
Android-onClick和touch事件冲突

Android-onClick和touch事件冲突

作者: XII01 | 来源:发表于2020-05-25 13:36 被阅读0次
    /**
     * @author wangxx
     * @data 2020/4/22
     */
    public class FloatingListener implements View.OnTouchListener {
    
        public static final String TAG="FloatingListener";
    
        private boolean isMove;
        //开始时的坐标和结束时的坐标(相对于自身控件的坐标)
        private int mStartX, mStartY, mStopX, mStopY;
    //按下事件跟结束事件
        private long mLastTime, mCurrentTime;
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            int action = event.getAction();
    
            switch (action) {
                case MotionEvent.ACTION_DOWN:
                    isMove = false;
                    mStartX = (int) event.getRawX();
                    mStartY = (int) event.getRawY();
                    mLastTime = System.currentTimeMillis();
                    break;
                case MotionEvent.ACTION_MOVE:
                    isMove = true;
                    break;
                case MotionEvent.ACTION_UP:
                    mStopX = (int) event.getRawX();
                    mStopY = (int) event.getRawY();
                    mCurrentTime = System.currentTimeMillis();
                    //判断时间
                    if (mCurrentTime - mLastTime < 500) {
                        //判断移动距离
                        if (Math.abs(mStartX - mStopX) >= 10 || Math.abs(mStartY - mStopY) >= 10) {
                            isMove = true;
                        } else {
                            isMove = false;
                        }
                    } else {
                        isMove = true;
                    }
                    break;
                default:
                    break;
            }
            LOG.i(TAG,"isMove="+isMove);
            //如果是移动事件不触发OnClick事件,防止移动的时候一放手形成点击事件
            return isMove;
    
        }
    }
    
    

    相关文章

      网友评论

          本文标题:Android-onClick和touch事件冲突

          本文链接:https://www.haomeiwen.com/subject/pelyahtx.html