没有合适的资源?快使用搜索试试~ 我知道了~
从布局的角度来分析Touch事件,便于深刻的理解并编写出合理代码。
资源推荐
资源详情
资源评论
Android 中 onTouchEvent 事件的传递流程
一、Activity 的界面布局
Activity 界面的布局在 PhoneWindow 中加载,PhoneWindow 中的 mDecor 为整个界面的 root,它是一个
FrameLayout , 只 有 一 个 子 View 即 mContentParent , mContentParent 由 inflate 布 局
com.android.internal.R.layout.screen_action_bar 所生成,该 layout 分为两部分:一个 id 为 action_bar_container
的 ActionBarContainer,对应标题栏;一个 id 为 content 的 FrameLayout 控件,对应标题栏下面的内容空间。
层次如下:
DecorView
ActionBarOverlayLayout(android:id/action_bar_overlay_layout)
FrameLayout(android:id/content)
MyLayout
...
ActionBarContainer(android:id/action_bar_container)
ActionBarContainer(android:id/split_action_bar)
二、Touch 事件的传递及处理
滑动屏幕的事件顺序为:
ACTION_DOWN , ACTION_MOVE , ACTION_MOVE , ..., ACION_MOVE, ACTION_UP , 其 中 ,
ACTION_DOWN 事件必须被处理(consumed),否则后续的 ACTION 和 ACTION_UP 事件不会被触发。
事件传递顺序是:
Activity -> DecorView -> ActionBarOverlayLayout -> ... -> 最上面的 Layout (-> 触点位置上的 View)
事件处理顺序与传递顺序相反,可以描述为:
触点位置上的 View-> 该 View 的父视图(一般是 ViewGroup) -> ... > PhoneWindow 的 DecorView.
[Activity.java]
public boolean dispatchTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
onUserInteraction();
}
if (getWindow().superDispatchTouchEvent(ev)) {
return true;
}
return onTouchEvent(ev);
}
处理顺序有前往后,如果该事件被前面的控件处理,则该事件已经被消费,不会再传递给后面的控件。
ViewGroup 的 onInterceptTouchEvent(MotionEvent ev)方法会拦截事件,该方法默认返回 false,表示不拦截。
该方法可以被重写,如果返回 true,则 Touch 事件不会被传递给 ViewGroup 的子控件,转而由它自己的
onTouchEvent()方法来处理 Touch 事件。
如果整个 DecorView 都没有处理 Touch 事件,则 Activity 的 onTouchEvent()会被调用,在这里做最后的处
理。
资源评论
羊之草叶
- 粉丝: 6
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 记录了贪心,动态规划等算法基本思想与设计.zip
- 基于菲阿里基本模型,以及MACD RSI BooL 等技术指标 构建一套基于贪心算法策略的智能投顾模型.zip
- oj算法代码-贪心算法.zip
- 基于yolov8行人检测源码+模型.zip
- 公开整理-地级市-绿色专利申请、授权数据集(2000-2022年).xlsx
- 基于Transformer模型的图像质量评分模型实现源码+详细说明文档.zip
- CST电磁场仿真+线性螺旋电感+建模步骤细节和RLC端口配置+CST高级建模操作
- 大数据库实验的报告材料材料(word文档良心出品).doc
- AIS2024 valid
- 最入门的爬虫代码 python.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功