本篇主要分析的是touch事件的分发机制,网上关于这个知识点的分析文章非常多。但是还是想通过结合自身的总结,来加深自己的理解。对于事件分发机制,我将使用两篇文章对其进行分析,一篇是针对View的事件分发机制解析,一篇是针对ViewGroup的事件分发机制解析。本片是对View的事件分发机制进行解析,主要采用案例结合源码的方式来进行分析。...
分类:
移动开发 时间:
2016-06-22 15:54:48
阅读次数:
343
前言
在自定义ViewGroup中,有时候需要实现触摸事件拦截,比如ListView下拉刷新就是典型的触摸事件拦截的例子。触摸事件拦截就是在触摸事件被parent view拦截,而不会分发给其child,即使触摸发生在该child身上。被拦截的事件会转到parent view的onTouchEvent方法中进行处理。但是这个交互过程还是挺复杂的,有多种情况,今天我们就来分析一下吧。这篇分析文章已...
分类:
移动开发 时间:
2016-06-19 10:13:52
阅读次数:
406
onTouch和onTouchEvent有什么区别,又该如何使用?为什么给ListView引入了一个滑动菜单的功能,ListView就不能滚动了?为什么图片轮播器里的图片使用Button而不用ImageView?等等 button.setOnClickListener(new OnClickList ...
分类:
移动开发 时间:
2016-06-19 06:42:14
阅读次数:
266
在分析Android事件分发机制前,明确android的两大基础控件类型:View和ViewGroup。View即普通的控件,没有子布局的,如Button、TextView. ViewGroup继承自View,表示可以有子控件,如Linearlayout、Listview这些。今天我们先来了解Vie ...
分类:
移动开发 时间:
2016-06-17 12:41:41
阅读次数:
191
View的滑动冲突指的是当有内外两层View同时可以滑动的时候,这个时候就会产生滑动冲突。那么应该如何解决滑动呢,其实要用到View的事件分发机制。
View的滑动冲突主要有以下三个场景:
场景一:外部滑动方向和内部滑动方向不一致;
场景二:外部滑动方向和内部滑动方向一致;
场景三:以上两种情况的嵌套。
这里主要讨论场景一的滑动冲突的解决,其他两种思想都是类似的,...
分类:
其他好文 时间:
2016-06-15 12:46:28
阅读次数:
311
其实我一直准备写一篇关于Android事件分发机制的文章,从我的第一篇博客开始,就零零散散在好多地方使用到了Android事件分发的知识。也有好多朋友问过我各种问题,比如:onTouch和onTouchEvent有什么区别,又该如何使用?为什么给ListView引入了一个滑动菜单的功能,ListView就不能滚动了?为什么图片轮播器里的图片使用Button而不用ImageView?等等……对于这些...
分类:
移动开发 时间:
2016-06-07 15:00:33
阅读次数:
306
安卓中的事件分发机制主要涉及到两类控件,一类是容器类控件ViewGroup,如常用的布局控件,另一类是显示类控件,即该控件中不能用来容纳其它控件,它只能用来显示一些资源类容,如Button,ImageView等控件。暂且称前一类控件为ViewGroup类控件(尽管ViewGroup本身也是一个View),后者为View类控件。...
分类:
移动开发 时间:
2016-06-06 01:16:05
阅读次数:
296
Handler的定义:
主要接受子线程发送的数据, 并用此数据配合主线程更新UI。
解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发,比如说,你要是点击一个 Button ,Android会分发事件到Button上,来响应你的操作。
如果此时需要一个耗时的操作,例如:联网读取数据,或者读取本地较大的一...
分类:
移动开发 时间:
2016-06-03 19:36:14
阅读次数:
221
以Android6.0的源码为基础,分析一下Android系统的ViewGroup/View Touch事件的分发机制...
分类:
移动开发 时间:
2016-06-03 19:19:20
阅读次数:
185
介绍上一篇博客职责链/责任链模式(Chain of Responsibility)分析理解和在Android的应用
介绍了职责链模式,作为理解View事件分发机制的基础。
套用职责链模式的结构分析,当我们的手指在屏幕上点击或者滑动,就是一个事件,每个显示在屏幕上的View或者ViewGroup就是职责对象,它们通过Android中视图层级组织关系,层层传递事件,直到有职责对象处理消耗事件,或者没...
分类:
移动开发 时间:
2016-06-02 13:52:42
阅读次数:
286