公司年底赶一个APP,五个tab,每个tab都放一个h5链接,于是用了viewpager+tablayout+fragment+webview,又要求首页有下拉刷新,以为很简单,就用常用的下拉刷新框架试了试,见了鬼了,放入一般网上的h5链接是正常的,一放入公司的h5就是一片空白,马上换一个框架再试,还是一样,懵逼了,这是怎么回事。本着能用别人的绝不自己写的原则,又找了一圈,终于找到了,顺便说下,这个框架的webview下拉刷新没看到scrollview的影子,不像其他框架都用了scrollview,直接用的是viewgroup,我感觉这是它能奏效的原因。这就是android-Ultra-Pull-To-Refresh。
使用方法:
1、根build.gradle:
mavenCentral()
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots'
}
2、app模块build.gradle:
implementation 'in.srain.cube:ultra-ptr:1.0.11'
3、布局文件fragment_home.xml:
4、fragment代码:
代码虽然有点长,不过还好理解,简单说明一下,LoadingHeader是自定义的刷新头,如果不需要自定义,这里就不用加入,下面都是webview的基本设置就没什么好讲的了。下面继续贴自定义刷新头的代码:
5、自定义刷新头:
这里用到了glide,需要自己另外导入框架:
implementation 'com.github.bumptech.glide:glide:3.7.0'
6、刷新头布局文件:
这个刷新头,我只在初始化的时候加载了一张gif图片,其他回调方法都没加入任何方法,这样下拉刷新的时候就是全程一直播放一张gif图片了,不管是下拉的时候还是刷新的时候。
PS:后续发现一个问题,部分h5页面在webview往下滑动后再往上滑,滑不动了,一滑就直接露出刷新头,网上找到一篇文章https://www.2cto.com/kf/201803/734502.html解决了这个问题:
重写WebView: