android 解决滑动冲突的外部拦截法
来源:互联网 发布:linux有什么认证 编辑:程序博客网 时间:2024/05/18 00:16
解决滑动冲突的思路就是基于andoird的view消息分发机制, 根据情况拦截父布局的消息, 从而控制父布局和子布局的滑动. 可以采取两种方式:
外部拦截法: 在父布局中拦截消息, 另子布局收不到消息;
内部拦截法: 在子布局中设置父布局是否拦截消息(通过parent.requestDisallowInterceptTouchEvent()方法).
第二种比较麻烦, 一般推荐使用第一种方式, 代码如下( 父布局中 ):
@Overridepublic boolean onInterceptTouchEvent(MotionEvent event){ boolean intercepted = false; int x = (int) event.getX(); int y = (int) event.getY(); switch(event.getAction()){ case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_UP: intercepted = false; break; case MotionEvent.ACTION_MOVE: if(父布局需要滑动) // 根据冲突的不同情况自己判断 intercepted = true; else intercepted = false; break; default: break; } mLastX = x; // 用于判断是否拦截的条件 mLastY = y; // 用于判断是否拦截的条件 return intercepted;}
ps: 借鉴于《Android开发艺术探索》 – 任玉刚
阅读全文
0 0
- android 解决滑动冲突的外部拦截法
- 使用外部拦截法处理滑动冲突
- 滑动冲突之外部拦截法
- 自定义View事件拦截机制(自定义viewGroup和外部法解决滑动冲突)
- view滑动冲突解决实战篇2(外部拦截法)
- 处理滑动冲突:外部拦截标准模板
- View滑动冲突处理方法(外部拦截法、内部拦截法)
- Android滑动冲突解决
- Android滑动冲突解决
- Android滑动冲突解决
- Android读书笔记----滑动冲突的解决方式
- android View滑动冲突的解决方式
- Android解决滑动冲突的方式
- 【Android】滑动冲突解决机制
- android 滑动事件冲突解决
- android-----滑动冲突解决案例
- android View滑动冲突解决
- Android解决屏幕滑动冲突
- android dagger2使用全解
- 浅谈mysql的锁和索引之间莫大的联系
- 服务器IMM2实战介绍
- centos设置Apache开机启动
- 数组去重
- android 解决滑动冲突的外部拦截法
- linux zip命令
- HDU 2669Romantic(扩展欧几里德裸题)
- 文本操作(2)——sort
- lintcode-矩阵归零
- 微信公众号平台登陆-你已授权登陆过XXXX
- 执行Oracle中的函数wm_concat报错oracle wmsys.wm_concat ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB
- 移动端不同尺寸下的适陪应
- 线程同步