android webview 显示加载进度的方法
时间: 2024-02-07 12:02:58 浏览: 84
webView加载进度条显示
5星 · 资源好评率100%
在 Android 中,你可以通过使用 `WebChromeClient` 和 `ProgressBar` 实现 WebView 的加载进度条。这里是一个简单的示例:
1. 首先,在你的布局文件中添加一个 `ProgressBar` 组件:
```xml
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminate="false"
android:max="100"
android:progress="0"
android:visibility="invisible" />
```
在这个示例中,我们设置了 `ProgressBar` 的最大值为 100,初始进度为 0,不显示动画,并且默认是不可见的。
2. 在你的 Activity 类中,设置 WebView 的 WebChromeClient,并实现 `onProgressChanged()` 方法来更新进度条的进度。
```java
WebView myWebView = findViewById(R.id.webview);
ProgressBar progressBar = findViewById(R.id.progressBar);
myWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
// 更新进度条的进度
progressBar.setProgress(newProgress);
// 如果进度条已经满了,隐藏进度条
if (newProgress == 100) {
progressBar.setVisibility(View.INVISIBLE);
} else {
progressBar.setVisibility(View.VISIBLE);
}
}
});
myWebView.loadUrl("https://www.example.com");
```
在这个示例中,我们设置了 WebView 的 `WebChromeClient`,并重写了 `onProgressChanged()` 方法。在每次加载进度发生变化时,我们通过 `setProgress()` 方法更新进度条的进度,并根据进度是否为 100 来显示或隐藏进度条。
注意:如果你的应用程序使用了 Material Design,你可以使用 `ProgressBar` 的 `indeterminateDrawable` 属性来设置进度条的样式。你可以使用 `@drawable/progress_indeterminate_material` 来使用 Material Design 风格的进度条。
阅读全文