Android Webview和ScrollView冲突和WebView使用总结

  • 1.因为Webview和ScrollView都用滑动事件,导致webview很难被滑动,即使被滑动了一点也非常不顺畅
  • 2.解决滑动冲突问题后发现,如果webview嵌套的html中含有轮播图等还是有问题。

使用自定义ScrollWebView解决这个问题

public class ScrollWebView extends WebView{

private float startx;

private float starty;

private float offsetx;

private float offsety;

public ScrollWebView(Context context) {

super(context);

}

public ScrollWebView(Context context, AttributeSet attrs) {

super(context, attrs);

}

public ScrollWebView(Context context, AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

}

@Override

public boolean onTouchEvent(MotionEvent event) {

switch (event.getAction()) {

case MotionEvent.ACTION_DOWN:

getParent().requestDisallowInterceptTouchEvent(true);

startx = event.getX();

starty = event.getY();

Log.e("MotionEvent", "webview按下");

break;

case MotionEvent.ACTION_MOVE:

Log.e("MotionEvent", "webview滑动");

offsetx = Math.abs(event.getX() - startx);

offsety = Math.abs(event.getY() - starty);

if (offsetx > offsety) {

getParent().requestDisallowInterceptTouchEvent(true);

Log.e("MotionEvent", "屏蔽了父控件");

} else {

getParent().requestDisallowInterceptTouchEvent(false);

Log.e("MotionEvent", "事件传递给父控件");

}

break;

default:

break;

}

return super.onTouchEvent(event);

}

}

相关推荐
Deryck_德瑞克34 分钟前
【已解决】MySQL连接出错 1045 - Access denied for user ‘root‘@‘::1‘
android·mysql·adb
2501_915918411 小时前
iOS性能测试工具 Instruments、Keymob的使用方法 不局限 FPS
android·ios·小程序·https·uni-app·iphone·webview
.豆鲨包2 小时前
【Android】组件化搭建的一般流程
android
心有—林夕2 小时前
MySQL 误操作恢复完全指南
android·数据库·mysql
忙什么果3 小时前
Mamba学习笔记2:Mamba模型
android·笔记·学习
Wyawsl3 小时前
MySQL故障排查与优化
android·adb
私人珍藏库5 小时前
[Android] 后台视频录制 FadCam v3.0.1
android·app·工具·软件·多功能
Z_Wonderful5 小时前
在 **Next.js** 中使用 `mysql2` 连接 MySQL 数据库并查询 `xxx` 表的数据
android·数据库
FirstFrost --sy5 小时前
MySql 内外连接
android·数据库·mysql
激昂网络5 小时前
在Ubuntu 24.04上编译T527 Android系统:遇到的几个问题及解决方法
android·linux·ubuntu