android ViewPager嵌套WebView滑动冲突问题解决
程序员文章站
2022-05-16 11:26:01
...
android ViewPager嵌套WebView滑动冲突问题解决
在ViewPager, ScrollView, ListView等容器控件中内嵌了webview,特别是webview的大小固定的情况下,会出现滑动的冲突,可以采用如下自定义的webview来完美解决。
/**
* 主要解决viewPager嵌套webView横向滚动问题
*/
public class ExtendedWebView extends WebView {
public ExtendedWebView(Context context) {
super(context);
}
public ExtendedWebView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) {
if (clampedX) {
ViewParent viewParent = findViewParentIfNeeds(this);
viewParent.requestDisallowInterceptTouchEvent(false);
}
super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
ViewParent viewParent = findViewParentIfNeeds(this);
if (viewParent != null)
viewParent.requestDisallowInterceptTouchEvent(true);
}
return super.onTouchEvent(event);
}
private ViewParent findViewParentIfNeeds(View tag) {
ViewParent parent = tag.getParent();
if (parent == null) {
return null;
}
if (parent instanceof ViewPager || parent instanceof AbsListView || parent instanceof ScrollView || parent instanceof HorizontalScrollView) {
return parent;
} else {
if (parent instanceof View) {
findViewParentIfNeeds((View) parent);
} else {
return parent;
}
}
return parent;
}
}
这个方案是找的网上方案比较少的代码也不会对js进行操作
https://droidyue.com/blog/2019/01/27/webview-javascript-scrolling-issue/
侵删
下一篇: opencv——convertTo用法3
推荐阅读
-
Android嵌套滑动冲突的解决方法
-
Android编程开发ScrollView中ViewPager无法正常滑动问题解决方法
-
Android中DrawerLayout+ViewPager滑动冲突的解决方法
-
Android编程开发ScrollView中ViewPager无法正常滑动问题解决方法
-
Android解决viewpager嵌套滑动冲突并保留侧滑菜单功能
-
Android ScrollView嵌套横向滑动控件时冲突问题
-
Android中DrawerLayout+ViewPager滑动冲突的解决方法
-
Android 中SwipeRefreshLayout与ViewPager滑动事件冲突解决方法
-
Android WebView与下拉刷新控件滑动冲突的解决方法
-
ScrollView中嵌套原生控件+WebView+原生控件出现的WebView滑动顶部的冲突问题。