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

}

}

相关推荐
末央&5 分钟前
【C++】vector的底层封装和实现
android·c++
希侬5 分钟前
android自定义Toast样式和显示方式
android
希侬8 分钟前
Android国内大厂推送规范整理
android
Aric1 小时前
conan cross build for Android with NDK toolchain
android
隐-梵4 小时前
Android studio学习之路(六)--真机的调试以及多媒体照相的使用
android·学习·android studio
stevenzqzq4 小时前
Android Studio Logcat V2 使用指南(适配 2024 年版本)
android·ide·android studio
bytebeats4 小时前
改进 Jetpack Compose 中的 ModalBottomSheet API
android
bytebeats4 小时前
使用Dagger SPI 查找非必要组件依赖项
android·gradle·dagger
bytebeats5 小时前
在Kotlin中编写依赖于时间的可测试协程代码
android·kotlin·测试
_一条咸鱼_5 小时前
AI 大模型之 Transformer 架构深入剖析
android