目录
使用场景
关于Android嵌套H5页面使用下拉刷新功能的问题:当我们在Android中使用第三方框架SmartRefreshLayout实现App的下拉刷新功能时,如果H5页面有部分功能设计到上下滑动的话,就会引起“误触”下拉刷新功能的操作,那么我们应该怎么去解决这个问题呢?
问题描述
由于我们使用的是Android的下拉刷新,并非是H5的下拉刷新,当H5页面中有个别弹窗页面(比如:地址上下滑动选择组件),遇到这个情况的都应该知道,如果不做处理,当你在使用H5地址选择页面的时候,你滑动地址选择的瞬间,由于是上下滑动,因此也会触发Android的下拉刷新,虽然下拉幅度不大,但是这个原本是不应该进行滑动的页面,它也确实因为你上下滑动选择地址的时候“误触”了下拉操作,即使它不是真正意义上的下拉刷新,但是出现这个拉动的动作,也是会引起用户体验满不好的,下面请看大致思路实现!
思路分析
相信有点熟悉Android开发的朋友在看思路分析前,已经有了自己的思路:直接在初始化下拉刷新initRefresh
()方法中验证你想要的页面能不能执行下拉操作不就行了吗?实践告诉你这个是无法实现的,因为下拉刷新方法在初始化的时候,已经实例过一次,后续调用的时候,并不会重复执行setOnRefreshListener
监听事件,只是执行它里面的onRefresh
方法,这个执行原理在此就不做详细分析了,涉及到底层原理,生命周期等问题,感兴趣的自行去研究探讨!
正确的做法可以在webView.setWebViewClient
里面的onPageFinished(WebView view, String url)
方法实现,由于onPageFinished(WebView view, String url)
中url会获取到每次点击请求的路径,所以可以该方法里面针对路径判断来区分哪个页面禁用下拉刷新功能。
解决方案
最后
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。
最后针对Android程序员,我这边给大家整理了一些资料,包括不限于高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**