swipeRefreshLayout与webview滑动冲突
2024-08-26 10:45:10
遇到这么个bug,webview使用swipeRefreshLayout时,下拉时事件不会被webview捕获,而是执行swipeRefreshLayout的刷新,网上一大堆一大堆的解决办法,都是什么重写swipeRefreshLayout或者重写WebView,本来为了快点解决bug copy了一下,结果发现妈的智障。。。琢磨了一下,很简单的一个事。。。
mWebView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
@Override
public void onScrollChange(View view, int i, int i1, int i2, int i3) {
if (mWebView.getScrollY() == 0){
swipeRefreshLayout.setEnabled(true);
}else {
swipeRefreshLayout.setEnabled(false);
}
}
});
直接给webview加个监听器,这个方法貌似在android不同版本会出现不兼容的情况。。。所以又有另外一种方法,重写onScrollChanged
public class WebView4Scroll extends WebView { private SwipeRefreshLayout swipeRefreshLayout; public WebView4Scroll(Context context, SwipeRefreshLayout swipeRefreshLayout){
super(context);
this.swipeRefreshLayout = swipeRefreshLayout;
} @Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
if (this.getScrollY() == 0){
swipeRefreshLayout.setEnabled(true);
}else {
swipeRefreshLayout.setEnabled(false);
}
}
}
重写webview,重写onScrollChanged,这次终于能完美解决了!
重点:本质上还是要理解事件分发机制
最新文章
- 使用串口线真机调试Linux内核
- logback 配置详解
- Web服务器磁盘满故障
- [IOS NSUserDefaults]的使用:登陆后不再显示登录界面。
- C# 泛型约束
- windows添加虚拟网卡
- Delphi 过程与函数
- 理解squid的正向和反向代理
- 导购效果跟踪: SPM
- 【leetcode】Word Ladder (hard) ★
- 【CF】7 Beta Round D. Palindrome Degree
- Android Native/Tombstone Crash Log 详细分析(转)
- Android ListView 删除动画
- Hugo + github 搭建个人博客
- Lonsdor K518ISE programs 2005 Ford Focus key in two minutes
- linux 学习笔记 mysql安装总结
- 重读《深入理解Java虚拟机》二、Java如何分配和回收内存?Java垃圾收集器如何工作?
- python特殊的数据类型
- struts1的配置文件详解11111
- 【转载】CString、BSTR和LPCTSTR之间的区别
热门文章
- js流程控制与函数
- 活动中使用提示框(Toast)
- Java字节码文件结构---概述
- java自带的jvm分析工具
- 使用BusyBox制作linux根文件系统(CramFS+mdev)
- [Linux] linux文件系统学习
- iOS:UIView、UIControl、UIButton、UILabel简单的属性和方法常识
- JQuery选择器中的一些注意事项
- Spark Shuffle 堆外内存溢出问题与解决(Shuffle通信原理)
- 【笔记】js Array.prototype.slice.call(arguments) 将函数的参数转换为数组方法的见解