问题描述
需求是这样的,viewpager内部嵌套多个不同的网页,滑动切换显示不同html5网页,想法是好的,但是遇到了一些问题。其中html网页中也会有一些类似viewpager的可横向滑动控件,当你尝试滑动html中的有滑动效果的控件时,发现整个外部viewpager都跟着滑动了,直接切换到另一个网页,哈哈哈,好棒
解决办法
解决办法有三个,其中第一个办法最苯,第二个还可以,但是略麻烦,第三个办法最完美,目前没发现什么问题,等不及的可以直接看第三个方法
方法1
将屏幕分为左中右三个区域,当滑动中间部分的时候禁掉外层viewpager的滑动,具体操作是在webview的ontouchevent中,通过判断触摸区域调用requestDisallowInterceptTouchEvent(true),当为true的时候,触摸事件就被webview拦截,不会传向父控件,viewpager自然不会滑动了,当然这么做,用户使用起来的话会非常蛋疼,而且现在很多手机都有全面屏幕手势操作,翻个页还不小心退出应用了,这不是搞笑的嘛,这种方法极其不推荐使用,还不如不滑动翻页,直接点tab了。
方法2
第二种方法是通过js和android之间通信,js获取html网页中可滑动控件的位置,然后传给android,安卓还是在webview的ontouchevent事件中判断触摸的位置,如果触摸在滑动控件上,就通过requestDisallowInterce