最近在做一个滑动控件,使用了viewpager,结果发现在viewpager总套入webview为子view时,当webview中有轮播图时发现滑动不了,最后查找资料发现有以下几种方式解决:
1、重新webview的onTouch事件,判断需要滑动的子view位置后然后申请滑动权限
webView.requestDisallowInterceptTouchEvent(true);
2、当前触摸事件是否是边缘触摸,如果为边缘触摸(我设置的是屏幕两边的80像素范围内为边缘触摸),则webview不处理此事件,这样ViewPager就能正常操作否则就交给webview进行滑动
dm = new DisplayMetrics();
manager = (WindowManager) getActivity().getSystemService(Context.WINDOW_SERVICE);
manager.getDefaultDisplay().getMetrics(dm);
webview.setOnTouchListener(new View.OnTouchListener() {//viewpager与webview滑 动冲突问题
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
int point = (int) event.getX();
if (point > 0 && point < 80 || point > dm.widthPixels - 80 && point < dm.widthPixels) {
content.requestDisallowInterceptTouchEvent(false);
} else {
content.requestDisallowInterceptTouchEvent(true);
}
break;
}
return false;
}
});