ViewPager关于嵌入scrollview等view,导致view不能滑动
来源:互联网 发布:html json解析工具 编辑:程序博客网 时间:2024/06/05 07:19
解决办法:重写ViewPager,覆盖ViewPager的onInterceptTouchEvent(MotionEvent arg0)方法和onTouchEvent(MotionEvent arg0)方法,这两个方法的返回值都是boolean类型的,只需要将返回值改为false。
1.Touch事件分发中只有两个主角:ViewGroup和View。ViewGroup包含onInterceptTouchEvent、dispatchTouchEvent、onTouchEvent三个相关事件。View包含dispatchTouchEvent、onTouchEvent两个相关事件。其中ViewGroup又继承于View。
2.ViewGroup和View组成了一个树状结构,根节点为Activity内部包含的一个ViwGroup。
3.触摸事件由Action_Down、Action_Move、Aciton_UP组成,其中一次完整的触摸事件中,Down和Up都只有一个,Move有若干个,可以为0个。
4.当Acitivty接收到Touch事件时,将遍历子View进行Down事件的分发。ViewGroup的遍历可以看成是递归的。分发的目的是为了找到真正要处理本次完整触摸事件的View,这个View会在onTouchuEvent结果返回true。
5.当某个子View返回true时,会中止Down事件的分发,同时在ViewGroup中记录该子View。接下去的Move和Up事件将由该子View直接进行处理。由于子View是保存在ViewGroup中的,多层ViewGroup的节点结构时,上级ViewGroup保存的会是真实处理事件的View所在的ViewGroup对象:如ViewGroup0-ViewGroup1-TextView的结构中,TextView返回了true,它将被保存在ViewGroup1中,而ViewGroup1也会返回true,被保存在ViewGroup0中。当Move和UP事件来时,会先从ViewGroup0传递至ViewGroup1,再由ViewGroup1传递至TextView。
6.当ViewGroup中所有子View都不捕获Down事件时,将触发ViewGroup自身的onTouch事件。触发的方式是调用super.dispatchTouchEvent函数,即父类View的dispatchTouchEvent方法。在所有子View都不处理的情况下,触发Acitivity的onTouchEvent方法。
7.onInterceptTouchEvent有两个作用:1.拦截Down事件的分发。2.中止Up和Move事件向目标View传递,使得目标View所在的ViewGroup捕获Up和Move事件。
因此在viewpager那设置
@Override public boolean onInterceptTouchEvent(MotionEvent ev) { return false; } @Override public boolean onTouchEvent(MotionEvent ev) { return false; }
- ViewPager关于嵌入scrollview等view,导致view不能滑动
- 解决ScrollView嵌套ViewPager,导致ViewPager不能滑动的问题
- 关于ScrollView内嵌GridView,ListView等滑动view的问题
- 动作被父view拦截导致viewpager滑动不顺畅
- ScrollView,ListView,GrideView,RecyclerView,ViewPager等多种view嵌套问题
- 解决TableView / ScrollView上的Menu问题(1滑出View区域还可点击2导致点击menu后View不能滑动)
- ScrollView嵌入ViewPager 滑动冲突的解决方法
- 关于ScrollView嵌入ListView,或ListView嵌入ListView,导致里层的ListView无法滑动解决方法。
- 防止viewpager和子view滑动冲突(ScrollView嵌套webview,Listview嵌套Listview 滑动事件冲突)
- ScrollView ViewPager嵌套导致滑动冲突解决方案
- ScrollView ViewPager嵌套导致滑动冲突解决方案
- ScrollView ViewPager嵌套导致滑动冲突解决方案
- ScrollView ViewPager嵌套导致滑动冲突解决方案
- ScrollView ViewPager嵌套导致滑动冲突解决方案
- android:关于自定义不能滑动的ViewPager后在使用View加载其所在的的布局时报错:Error inflating class view.NoscrollViewPager
- ScrollView中嵌入ViewPager,ViewPager的左右滑动冲突问题
- ScrollView中嵌入ViewPager,ViewPager的滑动出现问题
- ScrollView中嵌入ViewPager,ViewPager的滑动出现问题
- 构造方法与成员方法
- Linux网络编程学习笔记-socket编程2--4
- android 判断应用运行在前/后台
- 对“深度优先遍历”的理解
- 扑克序列 (排列)
- ViewPager关于嵌入scrollview等view,导致view不能滑动
- Phalcon入门教程之目录结构
- C语言中绘图时闪烁的问题
- Linux系统下安装Angular2开发环境(Ubuntu16.0)
- 类在创建对象过程中做了哪些事
- FineUIMvc随笔_0
- Android6.0百度地图导入UnsatisfiedLinkError的问题
- 禁用QPCore service启动项?
- CS231n Assignment2--Q3