您的位置:首页 > 其它

关于父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去掉了,所以并没有去了解太多

有兴趣额朋友可以自己去尝试
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息