【发布时间】:2015-08-16 16:43:05
【问题描述】:
我在 webview 上添加了一个进度条。我的问题是当 webview 正在加载一个 url 并且进度条显示进度并且我点击返回按钮时,进度条仍然会继续加载,直到它完成并显示在它不应该出现的背面页面上。
ProgressBar progressBar = (ProgressBar) rootView.findViewById(R.id.progressBar);
webView.setWebChromeClient(new CustomWebChromeClient(progressBar));
private static class CustomWebChromeClient extends WebChromeClient {
private static final int MAX_PROGRESS = 100;
private final ProgressBar progressBar;
public CustomWebChromeClient(ProgressBar webProgress) {
progressBar = webProgress;
}
@Override
public void onProgressChanged(WebView web, int newProgress) {
boolean stillLoading = isStillLoading(newProgress);
if (hasWebProgress()) {
progressBar.setProgress(newProgress);
progressBar.setVisibility(stillLoading ? View.VISIBLE : View.GONE);
}
super.onProgressChanged(web, newProgress);
}
private boolean isStillLoading(int newProgress) {
return newProgress < MAX_PROGRESS;
}
private boolean hasWebProgress() {
return progressBar != null;
}
}
OnBackPressed,当我尝试这样做时
progressBar.setVisibility(View.GONE);
这不起作用。我可以看到代码在断点处命中这一行。这一切都发生在一个片段中。
【问题讨论】:
标签: android webview visibility android-progressbar