gpt4 book ai didi

加载 WebView 时的 Android 进度条

转载 作者:IT王子 更新时间:2023-10-29 00:07:59 30 4
gpt4 key购买 nike

在我的应用程序中,我有一个 WebView 可以从 Internet 加载任何 URL。现在,有时由于网络速度较慢,页面需要很长时间才能加载,用户只能看到一个空白屏幕。

我想在 WebView 加载时显示 ProgressBar 并在 WebView 获取时隐藏 ProgessBar完全加载。

我知道如何使用 ProgressBarAsyncTask,但这是我的问题。

这是我用来加载 WebView 的代码。

    mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(new HelloWebViewClient());
mWebView.loadUrl(web_URL);

这是我的自定义 WebViewClient

private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}

现在,如果我尝试 使用 AsyncTasks 显示 ProgressBar 那么我想我必须提供代码来加载 URL在我的 AsyncTaskdoInBackGround() 函数中,并通过 onProgressUpdate() 函数显示进度。

但是,当 doInBackground()Non-UI 线程 上运行时,我如何在 doInBackground() 中加载 URL,我将无法使用 mWebView.loadUrl(web_URL)里面。

有什么建议吗?我错过了一些明显的东西吗?请指导我。

最佳答案

检查源代码。帮助您并解决您的问题...

public class AppWebViewClients extends WebViewClient {
private ProgressBar progressBar;

public AppWebViewClients(ProgressBar progressBar) {
this.progressBar=progressBar;
progressBar.setVisibility(View.VISIBLE);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);
return true;
}

@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
progressBar.setVisibility(View.GONE);
}
}

我觉得对你有帮助。

谢谢。

关于加载 WebView 时的 Android 进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11241513/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com