• android TouchEvent解析(2)


    假设:

    activity里有一个LAYOUT,在布局里有个按钮。

    如果在按钮上触发一个CLICK事件

    首先触发ACTIVITY的dispatchTouchEvent

    然后触发ACTIVITY的onUserInteraction

    然后触发LAYOUT的dispatchTouchEvent

    然后触发LAYOUT的onInterceptTouchEvent

    然后触发BUTTON的onTouch(这是一个ACTION_DOWN事件)

    紧跟着是一个ACTION_UP事件

    触发ACTIVITY的dispatchTouchEvent

    注意不再触发ACTIVITY的onUserInteraction,因为他对ACTION_UP不起作用。

    然后触发LAYOUT的dispatchTouchEvent

    然后触发LAYOUT的onInterceptTouchEvent

    然后触发BUTTON的onTouch

    最后触发BUTTON的onClick.

    如果你在ONTOUCH事件里返回true,消费了此事件,那么ONCLICK将不会被响应

    但是如果你不写ONCLICK事件,而ONTOUCH事件返回FLASE

    。结合上一篇一起看,便会明白很多

    另外:

    如果对于控件想响应他的触摸事件,如果继承

    则覆写ONTOUCHEVENT,如果不覆写则侦听ONTOUCH

    如果覆写了ONTOUCHEVENT,则不再响应ONCLICK事件

    如果写了ONCLICK,则不要再搞ONTOUCHEVENT了

    所以ONCLICK和ONTOUCHEVENT二取一,另外如果有ONTOUCH侦听,那么此函数要先于其他函数执行

    对于ONCLICK来说,要从头走俩便ONTOUCH,一次是DOWN,一次是UP

  • 相关阅读:
    linux下QT程序输出乱码解决方法
    Qt中新建类构造函数的初始化参数列表
    移植tslib1.4至mini2440
    Linux中总线设备驱动模型及平台设备驱动实例
    igntie实现数据同步
    django-初始化举例
    django-总体
    django-admin层
    django-view层
    django-template层
  • 原文地址:https://www.cnblogs.com/xilinch/p/2726470.html
Copyright © 2020-2023  润新知