ViewPage禁止滑动原理解析
1.ViewPage如何禁止滑动
重写ViewPager,在onInterceptTouchEvent方法和onTouchEvent方法都返回false,就可以禁止滑动。
那么为什么只要上面两个方法返回false就能禁止滑动呢?
2.原理解析
ViewPager是继承ViewGroup的,先看看ViewPager是如何拦截方法自己滑动的。
public boolean onInterceptTouchEvent(MotionEvent ev) {if (xDiff > mTouchSlop && xDiff * 0.5f > yDiff) {if (DEBUG) Log.v(TAG, "Starting drag!");mIsBeingDragged = true;requestParentDisallowInterceptTouchEvent(true);setScrollState(SCROLL_STATE_DRAGGING);mLastMotionX = dx > 0 ? mInitialMotionX + mTouchSlop :mInitialMotionX - mTouchSlop;mLastMotionY = y;setScrollingCacheEnabled(true);}return mIsBeingDragged;}
可以看到,在上面onInterceptTouchEvent方法返回了true,则会执行自己onTouchEvent方法并拖动界面(不知道为什么走onTouchEvent方法的看这篇文章安卓事件分发流程)。
所以,只要onInterceptTouchEvent 返回false,就不会走自身的onTouchEvent方法,会继续执行子View的dispatchTouchEvent方法,并最后走到ViewPager的onTouchEvent方法,所以ViewPager的onTouchEvent方法返回false就会跳过ViewPager的onTouchEvent而去执行上一层的onTouchEvent方法。
ViewPage禁止滑动原理解析相关推荐
- react vr 原理解析
react vr中文网:www.vr-react.com react vr qq群:481244084 示例源码 github:https://github.com/LiuC520/ReactVR/ ...
- Android代码入侵原理解析(一)
Original 2017-05-06 付超红 滴滴安全应急响应中心 2017年初,在滴滴安全沙龙上,滴滴出行安全专家--付超红,针对App的攻与防进行了分享.会后大家对这个议题反响热烈,纷纷求详情求 ...
- 【NLP】Doc2vec原理解析及代码实践
本文概览: 1. 句子向量简介 Word2Vec提供了高质量的词向量,并在一些任务中表现良好.虽然Word2Vec提供了高质量的词汇向量,但是仍然没有有效的方法将它们结合成一个高质量的文档向量.对于一 ...
- 6、HIVE JDBC开发、UDF、体系结构、Thrift服务器、Driver、元数据库Metastore、数据库连接模式、单/多用户模式、远程服务模式、Hive技术原理解析、优化等(整理的笔记)
目录: 5 HIVE开发 5.1 Hive JDBC开发 5.2 Hive UDF 6 Hive的体系结构 6.2 Thrift服务器 6.3 Driver 6.4 元数据库Metastore 6.5 ...
- 移动端弹出层加遮罩后禁止滑动
//实现滚动条无法滚动 var mo=function(e){e.preventDefault();};/***禁止滑动***/ function stop(){document.body.style ...
- python 支付宝个人账单_金融支付财务融合业务-实践分享1:订单、账单、交易流水、账套知识解构、原理解析...
本文作者从实际工作实践出发,结合案例等分享了电商金融支付财务融合中的基本概念和相关原理解析,包括:订单.账单.交易流水和账知识解构,供大家一同参考和学习. 从事电商.进销存.金融.支付.财务的产品同学 ...
- java 仿易企秀_鲁班H5(开源可视化搭建系统, 可以理解为开源版本易企秀)核心实现原理解析...
鲁班H5核心原理解析(开源版本的拖拽生成H5平台,功能类似易企秀的开源可视化搭建系统) 相关地址 鲁班H5是什么? 鲁班H5是基于Vue2.0开发的,通过拖拽的形式,生成页面的工具,类似易企秀.百度 ...
- 分布式缓存系统Redis原理解析
Redis作为内存数据库已经广泛应用于大数据领域,已经成为分布式架构下的基础组件.本文主要介绍了Redis内部的实现原理包括IO模型.内存管理.数据持久化等以及三种集群架构,旨在了解其中的实现机制. ...
- Python自动化-APPium原理解析与实际测试案例分享
目录结构 一.Appium概述 Appium架构原理 运行原理 1)Appium服务器 2)Bootstrap.jar 3)Appium客户端 二.Appium组件 三.Appium环境搭建 Node ...
最新文章
- 106页的《Python进阶》中文版(附下载)!
- 二十五、redis主从复制
- 生成打印标贴_亚马逊如何打印FBA标签?亚马逊怎么打印FBA标签?
- 移动设备将成为2014年最大的安全风险
- 数据处理奇技巧——python数据处理小技能
- Redis操作List相关API
- maven 父maven_Maven的鸟瞰图
- 当执行游戏0xc000007b错误的解决方法
- SpringCloud学习之SpringCloudStream集成kafka
- 微信支付,判断是否安装了微信
- 计算机学科 集体备课记录,信息技术学科组集体备课活动记录.pdf
- 抖音火爆表白小程序(C#语言实现)
- maya阿诺德渲染失败_maya2018无法加载ARNOLD渲染器?
- 计算机组成原理中的DUBS是,[转帖]实验室名称中英文对照大整理
- c# word 在当前光标位置插入内容
- 在线模拟装机大学计算机,模拟装机实验.doc
- 采用ODC改善软件质量:一个案例研究
- word文档批量转换为html格式
- 头条 上传图片大小_1分钟教会您用电脑在头条号发图文----玩转头条号,一起来挣钱...
- 刷题总结——松鼠的新家(bzoj3631)