码迷,mamicode.com
首页 > 移动开发 > 详细

android事件分发笔记

时间:2014-10-22 12:41:56      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   color   io   sp   div   on   问题   

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   style   blog   color   io   sp   div   on   问题   

原文地址:http://www.cnblogs.com/baron89/p/4042574.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!