解决android中viewpager和内嵌html滑动事件冲突
2017-03-17 14:57
811 查看
这几天项目迭代,有个大的板块是整体套用H5来做。由于H5里还有好多小模块,需要一个滑动切换的效果,而android端只是提供一个空的fragment,占据着viewpager的一个板块。最开始的效果滑动起来分外尴尬。。
解决思路是这样的:当我们的触摸点在屏幕的左右边缘的时候,让viewpager来滚动,实现几个fragment之间的切换,如果不是在边缘触发滑动的话,交给webview,由H5做相关的切换处理。
我使用的手机是宽度1080像素,手势触摸在0~50和1030~1080间的时候做整体的滑动还是比较敏感的,如果这个是fragment滑动的触摸范围太小的话比较困难。这是个比笨的方案了吧。如果有更好的建议请不吝赐教~
解决思路是这样的:当我们的触摸点在屏幕的左右边缘的时候,让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滑动的触摸范围太小的话比较困难。这是个比笨的方案了吧。如果有更好的建议请不吝赐教~
相关文章推荐
- android scrollView 内嵌ViewPager或Gallery等水平滑动控件冲突问题解决实现同时滑动
- Android 中SwipeRefreshLayout与ViewPager滑动事件冲突解决方法
- Android中解决ListView嵌套Viewpager时,滑动事件冲突的方法
- Android中解决ListView嵌套Viewpager时,滑动事件冲突的方法
- 解决ListView+ViewPager滑动事件冲突的问题
- 解决ViewPager的左右滑动和点击返回事件的冲突
- 解决ListView+ViewPager滑动事件冲突的问题
- [Android] Viewpager 与 Google map v2 冲突,导致地图不能左右滑动解决
- Android ScrollView嵌套ViewPager滑动失效和无法正常滑动冲突问题解决方案
- Android解决ViewPager嵌套Fragment,Fragment嵌套ViewPager滑动冲突
- Android:SwipeRefreshLayout和ViewPager滑动冲突的原因和正确的解决方式
- 解决ScrollView和VerticalViewPager滑动事件冲突问题
- Android ViewPager嵌套ViewPager滑动冲突的解决方法
- SwipeRefreshLayout与ViewPager滑动事件冲突解决
- android 解决ViewPager与Gallery事件冲突
- ViewPager禁止滑动以及它与内层滑动控件水平方向上事件冲突的解决方法
- Android listview viewpager解决冲突 滑动
- Android viewpager 嵌套 viewpager滑动 点击事件冲突解决方案
- android 布局 使用 viewPager 时,如何解决 和 子页面 长按滑动 冲突问题