直接上代码:
public class WebViewTouchScrollUtil {
public static void setWebViewOnTouch(WebView webView){
webView.setOnTouchListener(new View.OnTouchListener() {
private float startx;
private float starty;
private float offsetx;
private float offsety;
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
view.getParent().requestDisallowInterceptTouchEvent(true);
startx = motionEvent.getX();
starty = motionEvent.getY();
break;
case MotionEvent.ACTION_MOVE:
offsetx = Math.abs(motionEvent.getX() - startx);
offsety = Math.abs(motionEvent.getY() - starty);
if (offsetx > offsety) {
view.getParent().requestDisallowInterceptTouchEvent(true);//子控件滑动
} else {
view.getParent().requestDisallowInterceptTouchEvent(false);//父控件滑动
}
break;
default:
break;
}
return false;
}
});
}
}
Android webview外层有ScrollView时焦点冲突的解决
最新推荐文章于 2021-06-03 17:32:09 发布
本文提供了一段用于优化Android中WebView触控滚动体验的代码实现。通过监听触控事件并判断水平与垂直方向的滑动距离来决定是否拦截触摸事件,从而改善了WebView在滑动时的表现。
832

被折叠的 条评论
为什么被折叠?



