zoukankan      html  css  js  c++  java
  • 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,但是有的时候不会触发,个人理解是人的动作不标准所致。

  • 相关阅读:
    学习进度条7
    2016年秋季个人阅读计划
    WampServer中MySQL中文乱码解决
    LINK : fatal error LNK1104: 无法打开文件“LIBCD.lib”
    人月神话阅读笔记03
    人月神话阅读笔记02
    个人总结
    人月神话阅读笔记01
    学习进度条15
    学习进度14
  • 原文地址:https://www.cnblogs.com/baron89/p/4042574.html
Copyright © 2011-2022 走看看