之前『Android Toolbar 显示 WebView Title』等文章中提到现在很多 App 都使用内嵌网页的方式来提高迭代效率,而『WeChat』便是其一,最大的体现就是在公众号文章中,不过其使用的不是原生的 WebView
,而是定制的腾讯 X5 内核 TBS。
其中比较有用的是,在加载网页时,上方会有一个进度条用于展示当前网页的加载进度:

这是一个很好的交互控件,能够让用户知晓当前的加载状态,来作出对应的操作。
那么原生 WebView
能否加上一个进度条呢?当然可以。
首先需要在「drawable」文件夹下创建一个进度条 ProgressBar
的背景样式,这里我把它命名为「progress_bar.xml」:
在布局文件内加入 ProgressBar
控件:
ProgressBar
控件导入了刚才的背景样式,并指定了其 style。
最后写出其显示逻辑:
WebChromeClient
的 onProgressChanged()
方法会回调 WebView
的加载进度,我们在这里获取到进度值并设置到 ProgressBar
中去,并且在进度为 100%
也就是加载完成时消失,即可实现如同『WeChat』般加载网页的进度条效果了。
Gitalking ...