遇到这么个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,这次终于能完美解决了!

重点:本质上还是要理解事件分发机制

最新文章

  1. 使用串口线真机调试Linux内核
  2. logback 配置详解
  3. Web服务器磁盘满故障
  4. [IOS NSUserDefaults]的使用:登陆后不再显示登录界面。
  5. C# 泛型约束
  6. windows添加虚拟网卡
  7. Delphi 过程与函数
  8. 理解squid的正向和反向代理
  9. 导购效果跟踪: SPM
  10. 【leetcode】Word Ladder (hard) ★
  11. 【CF】7 Beta Round D. Palindrome Degree
  12. Android Native/Tombstone Crash Log 详细分析(转)
  13. Android ListView 删除动画
  14. Hugo + github 搭建个人博客
  15. Lonsdor K518ISE programs 2005 Ford Focus key in two minutes
  16. linux 学习笔记 mysql安装总结
  17. 重读《深入理解Java虚拟机》二、Java如何分配和回收内存?Java垃圾收集器如何工作?
  18. python特殊的数据类型
  19. struts1的配置文件详解11111
  20. 【转载】CString、BSTR和LPCTSTR之间的区别

热门文章

  1. js流程控制与函数
  2. 活动中使用提示框(Toast)
  3. Java字节码文件结构---概述
  4. java自带的jvm分析工具
  5. 使用BusyBox制作linux根文件系统(CramFS+mdev)
  6. [Linux] linux文件系统学习
  7. iOS:UIView、UIControl、UIButton、UILabel简单的属性和方法常识
  8. JQuery选择器中的一些注意事项
  9. Spark Shuffle 堆外内存溢出问题与解决(Shuffle通信原理)
  10. 【笔记】js Array.prototype.slice.call(arguments) 将函数的参数转换为数组方法的见解