要在Android Studio中为WebView添加一个内部链接的进度条,你可以按照以下步骤进行操作:
首先,在你的项目的build.gradle文件中,确保已经添加了implementation 'androidx.webkit:webkit:1.4.0'
依赖。
在你的布局文件中添加一个ProgressBar作为进度条:
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
public class YourActivity extends AppCompatActivity {
private WebView webView;
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_your);
webView = findViewById(R.id.webView);
progressBar = findViewById(R.id.progressBar);
// 设置WebViewClient
webView.setWebViewClient(new WebViewClient() {
// 当页面开始加载时调用
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
progressBar.setVisibility(View.VISIBLE); // 显示进度条
}
// 当页面加载完成时调用
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
progressBar.setVisibility(View.INVISIBLE); // 隐藏进度条
}
});
// 设置WebChromeClient,用于监听进度变化
webView.setWebChromeClient(new WebChromeClient() {
// 当进度改变时调用
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
progressBar.setProgress(newProgress); // 更新进度条
}
});
// 加载网页
webView.loadUrl("http://example.com");
}
}
这样,当WebView加载页面时,进度条就会显示,并且根据页面加载的进度进行更新。加载完成后,进度条将被隐藏。