Android_fragment加载webView与ViewPager所带来的滑动冲突问题解决方法
前段时间也是遇见了这样的问题,所以今天来做个工作经验与分享。
webView和ViewPager放一块所引起的滑动冲突,主要是因为的Android中事件分发机制,我们知道Touch事件,首先必然由最外层View拦截,如果无法更改这个最外层View,那么是不是就没辙了呢?其实不然,Android这么高大上的系统必然考虑到了这个问题,好了废话不说,直接代码
在共用的fragment中给webview添加setOnTouchListener方法
> /**
> * webView与ViewPager所带来的滑动冲突问题解决方法
> */
> webview.setOnTouchListener(new View.OnTouchListener() {
> @Override
> public boolean onTouch(View v, MotionEvent event) {
> webview.getParent().requestDisallowInterceptTouchEvent(true);
> int x = (int) event.getRawX();
> int y = (int) event.getRawY();
> int lastX = 0;
> int lastY = 0;
> switch (event.getAction()) {
> case MotionEvent.ACTION_DOWN:
> lastX = x;
> lastY = y;
> break;
> case MotionEvent.ACTION_MOVE:
> int deltaY = y - lastY;
> int deltaX = x - lastX;
> if (Math.abs(deltaX) < Math.abs(deltaY)) {
> webview.getParent().requestDisallowInterceptTouchEvent(false);
> } else {
> webview.getParent().requestDisallowInterceptTouchEvent(true);
> }
> default:
> break;
> }
> return false;
> }
> });