• android事件分发笔记


    1.SimpleOnGestureListener

    遇到的问题:

    自己定义一个按钮继承自Button,一开始改变按钮颜色的操作放在onTouchEvent的ATION_DOWN里触发。

    这时问题来了,放在ScrollView里面,发现如果碰到按钮去滑动时,会触发按钮改变颜色,显然这是不对的。

    后来查了一下,发现了SimpleOnGestureListener

    重写了onDown事件和onSingleTapUp事件,代码如下

    private SimpleOnGestureListener mSimpleOnGestureListener = new SimpleOnGestureListener(){
            @Override
            public boolean onSingleTapUp(MotionEvent e) {
                //改变颜色只在点击的时候,如果在onDown里的话,滑动也会改变颜色
                setChecked(!mIsChecked);
                return true;
            }
            @Override
            public boolean onDown(MotionEvent e) {
                //这里返回true才会调用onSingleTapUp
                return true;
            }
        };

    在自定义Button里重写onTouchEvent即可

    @Override
    public boolean onTouchEvent(MotionEvent event) {
      return mGestureDetector.onTouchEvent(event);
    }

     QUOTE

    1. 点击屏幕上的某项的执行流程  有两种情况,一种是时间很短,一种时间稍长

    时间很短:onDown--------》onSingleTapUp--------》onSingleTapConfirmed

    时间稍长:onDown--------》onShowPress------》onSingleTapUp--------》onSingleTapConfirmed

    2. 长按事件

    onDown--------》onShowPress------》onLongPress

    3.抛:手指触动屏幕后,稍微滑动后立即松开

    onDown-----》onScroll----》onScroll----》onScroll----》………----->onFling

    4.拖动

    onDown------》onScroll----》onScroll------》onFiling

    注意:有的时候会触发onFiling,但是有的时候不会触发,个人理解是人的动作不标准所致。

  • 相关阅读:
    视觉slam十四讲课后习题ch3-7
    视觉slam十四讲课后习题ch3-6
    视觉slam十四讲课后习题ch3--5题
    (原创)遗传算法C++实现
    (笔记):组合and继承之访问限制(二)
    (笔记):组合and继承之访问限制(一)
    (笔记):初始化列表之初始化顺序
    (笔记):构造函数之初始化列表
    笔记:构造函数易错点
    (笔记):构造函数与析构函数
  • 原文地址:https://www.cnblogs.com/baron89/p/4042574.html
Copyright © 2020-2023  润新知