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,但是有的时候不会触发,个人理解是人的动作不标准所致。

  • 相关阅读:
    Android通过流播放声音
    Android 凑热闹的MusicPlay
    ANDROID开发之SQLite详解
    Android中Bitmap和Drawable
    java synchronized详解
    android 使用广播监听网络状态
    你想不到的!CSS 实现的各种球体效果【附在线演示】
    18(19).迭代器协议和生成器
    18.函数复习,文件处理b模式(二进制处理),文件处理其他高级玩法
    17.python文件处理
  • 原文地址:https://www.cnblogs.com/baron89/p/4042574.html
Copyright © 2011-2022 走看看