zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    laravel 5.5 仓库模式 文件之间接口与实现操作
    php 无线分类 根据子级找父级
    php 无限极分类,根据父级 找子级
    laravel5.4 中 dd和dump的区别。
    laravel hash密码生成和密码验证
    oracle建表详细信息
    关于组件的认识
    java的Thread Dump诊断工具
    weblogic连接池
    详解Oracle数据字典
  • 原文地址:https://www.cnblogs.com/xilinch/p/2726470.html
Copyright © 2011-2022 走看看