Android事件分发机制
来源:互联网 发布:澳洲工作 知乎 编辑:程序博客网 时间:2024/06/03 11:54
最近在准备面试,所以重新学习总结一下面试时一些概率性出现的问题。今天学习总结的是Android的事件分发机制,我是通过该视频学习的,分享给有需要的小伙伴~
学习笔记:
最常见的几个触摸事件:ACTION_DOWN、ACTION_MOVE、ACTION_UP ...
事件分发的顺序:从父到子,即从Activity-->Layout-->控件,由外向内
事件消费(处理)顺序:从子到父,即从控件-->Layout-->Activity,由内向外,如果控件不做消费,Layout不做消费,那最后的消费就由Activity处理
附:(来源)
事件分发核心的几个方法:
方法1:分发触摸事件
@Override public boolean dispatchTouchEvent(MotionEvent ev) { return super.dispatchTouchEvent(ev);//注意:这里不能直接返回true或false,否则onTouchEvent()不执行 }
方法2:触摸事件处理(消费方法)
@Override public boolean onTouchEvent(MotionEvent event) { return super.onTouchEvent(event); }
方法3:拦截触摸事件
@Override public boolean onInterceptTouchEvent(MotionEvent ev) { return super.onInterceptTouchEvent(ev); }其中方法1和2在Activity、View、ViewGroup中都有,但是方法3只有ViewGroup中有
事件分发的用处:自定义分发的顺序,解决事件冲突
例如:ScrollView和ListView的冲突,我们可以这样做:
1.重写ListView的onInterceptTouchEvent()并返回true
2.重写ListView的onTouchEvent并在返回前调用下方的方法,告知父控件,不想它拦截自己的方法
getParent().requestDisallowInterceptTouchEvent(true);
0 0
- android事件分发机制
- Android事件分发机制
- Android 事件分发机制
- Android事件分发机制
- Android 事件分发机制
- Android 事件分发机制
- android 事件分发机制
- Android事件分发机制
- android 事件分发机制
- android事件分发机制
- Android 事件分发机制
- android事件分发机制
- android 事件分发机制
- android 事件分发机制
- Android 事件分发机制
- Android事件分发机制
- Android事件分发机制
- Android 事件分发机制
- 基于颜色信息的图像分割算法
- Swift autoLayout 下的UILabel 换行问题
- Android listview多选模式ChoiceMode
- VSCode快捷键介绍
- boost noncopyable实现禁止类拷贝
- Android事件分发机制
- 【OpenGL】OpenGL系列——02坐标转换
- checkbox表格全选
- SetupDiGetClassDevs函数详解
- LeetCode算法题目:Same Tree(两种方法解决)
- 液晶显示屏的坏点
- 117. Populating Next Right Pointers in Each Node II
- 服务端开发指南与最佳实战 | 数据存储技术 | MySQL(04) 索引使用的注意事项
- Mysql中limit的用法