Android事件分发机制完全解析


转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9097463

1.区别:onTouch和onTouchEvent

2.listView引入了滑动,就不能滚动
3.图片轮询器里的图片使用Button而不用imageView?
4.从源码分析android事件分发机制
5.先执行onTouch,再执行onClick,onTouch的返回值改为true,则onClick不再执行(返回true表示这个事件被onTouch消费掉了,
  而不会继续往下传)
6.原理:
  ①首先,只要你触摸任何一个控件,一定会调用该控件的dispatchTouchEvent方法(最大父类View的方法,如button的类里
   没有这个方法,父类TextView也没有,View里有)
  ② View 中的dispatchTouchEvent方法源码
    public boolean dispatchTouchEvent(MotionEvent event){
if (mOnTouchListener != null && (mViewFlags & ENABLED_MASK) == ENABLED &&
            mOnTouchListener.onTouch(this, event)) {-->第三个条件为onTouch方法中返回值,如果返回true,那整个方法直接返回true,表示执行完毕
        return true;
        }
    return onTouchEvent(event);-->表示继续执行onTouchEvent(event);-->可以直到onclick方法一定是在这里执行的
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值