ontouchevent浅谈

同一事件序列的概念:以down开始,up为止,中间包含若干个move;

返回值如果为true,表示消耗此事件,同一事件序列都在此view上进行。

返回值为false 表示不拦截,会向下传递(子View)。

==============================================================

ontouchlistener 的优先级高于(重写)onTouchEvent(MotionEvent event)。

也就是说如果一个view同时设置了ontouchlistener和重写了onTouchEvent(MotionEvent event),当ontouchlistener返回true(拦截),那么onTouchEvent将不会被调用。如果ontouchlistener返回(false)那么onTouchEvent将会被调用,因为ontouchlistener 的优先级高于onTouchEvent(MotionEvent event)。

==============================================================

super.onTouchEvent(event)为默认返回值。
View默认返回值为true(拦截)。
但是,如果他的clickable 和longClickable属性同时为false,则默认返回值为false。
longClickable的默认属性都为:false。
例如:1、View 继承Button他的clickable属性默认就true, 所以super.onTouchEvent(event)为true;
2、View 继承TextView他的clickable属性默认就false, 所以super.onTouchEvent(event)为false;

==============================================================

ViewGroup默认不拦截任何事件super.onTouchEvent(event)的默认返回值为false。

例如:ListView继承ViewGroup, 如果将 onTouchEvent(MotionEvent event) 返回值设为true,那么将不能滑动和调用点击item事件,使用时要注意!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值