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);

}

}

相关推荐
2501_9160088918 分钟前
iPhone 上怎么抓 App 的网络请求,在 iOS 设备上捕获网络请求
android·网络·ios·小程序·uni-app·iphone·webview
工业甲酰苯胺20 分钟前
PHP闭包中static关键字的核心作用与底层原理解析
android·开发语言·php
Kapaseker1 小时前
解析 Compose 的核心概念 remember
android·kotlin
秋知叶i2 小时前
【Android Studio】Kotlin 第一个 App Hello World 创建与运行|超详细入门
android·kotlin·android studio
锋风Fengfeng2 小时前
远程服务器运行Android Studio开发aosp源码
android·服务器·android studio
fundroid2 小时前
从零构建用于 Android 开发的 MCP 服务:原理、实践与工程思考
android·ai编程·mcp
Billy_Zuo2 小时前
Android Studio 打aar包
android·ide·android studio
XiaoLeisj2 小时前
Android UI 布局与容器实战:LinearLayout、RelativeLayout、ConstraintLayout
android·ui
summerkissyou19873 小时前
Android-Audio-编码和解码
android·audio