Android事件处理

按键事件处理

按键捕获先后顺序:驱动层->系统层->library层->框架层->应用层。
应用层return false,事件会继续向底层传递。
应用层return true,事件终止不再传递。
调用super方法,Activity会决定事件处理方式以及是否向底层传输。
return false和return true会导致按键onKeyLongPress事件无法处理,用return true拦截事件时需要添加event.startTracking()才能触发onKeyLongPress事件,系统不会处理长按事件。
Home键一般交由系统处理,应用层一般不处理。

触摸事件处理

onInterceptTouchEvent()进行触摸事件拦截。
onTouch方法的return true可以拦截事件,return false会将事件进行逐级传递;最顶层return false之后,会将事件交由上级容器进行处理,当前不会再处理任何触摸事件(Down、Move、Up),而return true可以继续处理其他事件。
调用super方法后,则由Activity决定事件处理方式。
事件传递方式,从上往下传递,从下往上通知。
requestDisallowInterceptTouchEvent(true),在onTouchEvent中可以设置不拦截事件(ListView与ScrollView的滑动事件冲突时,可以如此设置)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值