b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

触摸屏虚拟键盘 Android Touch事件传递机制全面解析(从WMS到View树)(10)

电脑杂谈  发布时间:2018-02-19 12:20:49  来源:网络整理

这里事实上没太多要说的,重点关注:

1、onClick和onLongClick运行的时机:onClick时在UP事件中运行的,onLongClick实在Down事件中运行的,仅仅是假设在Down事件中已经运行了onLongClick的话,则mHasPerformedLongPress变量会被置为true,这样在UP事件中。就会把onClick的回调remove掉。就不会再运行onClick了。

2、仅仅要该View是clickable的,就一定会消费掉Touch事件,仅仅是,假设该View是Disable的话,尽管消费掉了Touch事件。可是不做不论什么处理。

另外。有一点大致说下:

源代码的前面部分有一个mTouchDelegate变量(默觉得null),假设它不为null的话。会将Touch事件分发给它。

详细的意思是这种。假设有两个视图v1和touchDelegate1。它们的布局相互之间不重叠。假设设置了v1.setTouchDelegate(touchDelegate1)的话,v1的触摸事件就会分发给touchDelegate1中的view(TouchDelegate中有一个view变量)。

?

为了便于总体上对源代码流程的把握,这里相同画了一个流程图

最后,关于整个Touch事件在View树中的传递流程,相同画了张流程图,看起来会更直观。有助于对总体流程的把控:

技术分享图片

以上流程图中有些地方文字有错位。应该不影响对流程的总体理解和把握。

事实上相对来说,事件的分发处理属于Android中比较基础的知识点。但想把整个流程完整地串通,还是要花些时间的。这篇文章在10月份的时候就想写了,可是工作后,写博客的时间越来越少。人也变得越来越懒了。

。。

整篇文章断断续续坚持着写下来还是挺费劲的。

好了,不多说了,下篇文章,将通过一个Demo,结合8种不同的情况,对Touch事件在View树中传递时源代码的运行情况做一个详细的分析。

? ? ? ? ?一直想做个公众号。可是考虑到在手机端看代码的用户体验确实太差。而我又比较喜欢正能量的东东。最后倒腾了一个鸡汤号,每日一篇正能量好文,同一时候各种互联网信息爆料。尽在当中。

。。

欢迎扫码关注。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shouji/article-84984-10.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 李香峰
      李香峰

      厂家一天生产那么多黑芝麻粉

    热点图片
    拼命载入中...