您的位置:首页 > 移动开发 > Android开发

解决android中viewpager和内嵌html滑动事件冲突

2017-03-17 14:57 811 查看
           这几天项目迭代,有个大的板块是整体套用H5来做。由于H5里还有好多小模块,需要一个滑动切换的效果,而android端只是提供一个空的fragment,占据着viewpager的一个板块。最开始的效果滑动起来分外尴尬。。

          解决思路是这样的:当我们的触摸点在屏幕的左右边缘的时候,让viewpager来滚动,实现几个fragment之间的切换,如果不是在边缘触发滑动的话,交给webview,由H5做相关的切换处理。

              

final DisplayMetrics dm = new DisplayMetrics();
WindowManager manager = (WindowManager) getActivity().getSystemService(Context.WINDOW_SERVICE);
manager.getDefaultDisplay().getMetrics(dm);
mWebview.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
int point = (int) event.getX();
if (point > 0 && point < 50 || point > dm.widthPixels - 50 && point < dm.widthPixels) {
mWebview.requestDisallowInterceptTouchEvent(false);
} else {
mWebview.requestDisallowInterceptTouchEvent(true);
}
break;
}

return false;
}
});


    我使用的手机是宽度1080像素,手势触摸在0~50和1030~1080间的时候做整体的滑动还是比较敏感的,如果这个是fragment滑动的触摸范围太小的话比较困难。这是个比笨的方案了吧。如果有更好的建议请不吝赐教~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: