关于父view拦截触屏事件
2015-05-15 09:45
393 查看
在开发中遇到了这样的问题:
在同一布局中使用了ScrollView与Viewpager,Viewpager是ScrollView的子view。在开发的过程中发现ScrollView触屏事件没有问题,但是Viewpager却无法触发触屏事件,就是左右滑动事件。笔者尝试了很多办法去解决,终于发现原因:
ScrollView作为父view,会拦截子view的Viewpager触屏事件。
笔者的解决办法是:
在Viewpager中重写dispatchTouchEvent的方法,然后在该方法中设置父view不拦截触屏事件
代码如下:
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
getParent().requestDisallowInterceptTouchEvent(true); // 让父类不拦截触摸事件
return super.dispatchTouchEvent(event);
}
其实ScrollView与ListView也会出现类似的情况,笔者也遇到过
后来因为需求问题,直接将ScrollView去掉了,所以并没有去了解太多
有兴趣额朋友可以自己去尝试
在同一布局中使用了ScrollView与Viewpager,Viewpager是ScrollView的子view。在开发的过程中发现ScrollView触屏事件没有问题,但是Viewpager却无法触发触屏事件,就是左右滑动事件。笔者尝试了很多办法去解决,终于发现原因:
ScrollView作为父view,会拦截子view的Viewpager触屏事件。
笔者的解决办法是:
在Viewpager中重写dispatchTouchEvent的方法,然后在该方法中设置父view不拦截触屏事件
代码如下:
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
getParent().requestDisallowInterceptTouchEvent(true); // 让父类不拦截触摸事件
return super.dispatchTouchEvent(event);
}
其实ScrollView与ListView也会出现类似的情况,笔者也遇到过
后来因为需求问题,直接将ScrollView去掉了,所以并没有去了解太多
有兴趣额朋友可以自己去尝试
相关文章推荐
- 最简单最明白的关于“事件”和“委托”的例子说明
- 关于mouseenter、mouseleave与mouseover、mouseout事件选择
- 关于JavaScript与HTML的交互事件
- android 关于触摸事件的理解
- 关于a标签‘’禁止事件触发‘无效问题
- 关于键盘触发事件和屏幕触发事件的问题
- 转载关于KeyPress和KeyDown事件的区别和联系
- 关于JavaScript中监听鼠标滚轮事件
- 关于VS2003中控件丢事件的解决办法
- 关于Winform中同时触发多个键盘事件
- 关于DataList的嵌套 和(ItemCommand)事件的问题
- 关于cocos2dx里面的重力感应事件
- 关于Activity的按键事件监听的坑
- 关于mysql事件处理的方法
- 关于TreeView控件CheckBox选中事件
- 关于c#中的事件处理机制
- 关于blur和focus的事件代理
- BootStrap中关于Select下拉框选择触发事件及扩展
- 关于鼠标事件坐标位置的几个概念
- 关于事件分发的一些认识