我很擅长开发Android应用。基本上我正在制作一个webview模板来显示移动优化网站的不同网址。
该应用有两页:
1个启动页面。
1个webview页面。
我已经完成了几个教程,这部分实际上正在工作,所以问题是......
我想在webview加载网站时显示进度条,然后在网站加载时消失。
我已经做了很多努力让它发挥作用,但没有成功。
XML文件:
基本上有ID:
的网页视图和ID:progressbar
的进度条(不确定是否应该在那里)
JAVA文件:
Link to preeview of java file
答案 0 :(得分:4)
您忘记添加ProgressBar
支持。
在setContentView(R.layout.layout_file)
;
// Adds Progrss bar Support
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
然后在致电setContentView(R.layout.layout_file);
后添加此行以显示进度条
// Makes Progress bar Visible
getWindow().setFeatureInt( Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON);
现在在onProgressChanged(WebView view, int progress)
内你必须添加以下行:
//Make the bar disappear after URL is loaded, and changes string to Loading...
MyActivity.setTitle("Loading...");
MyActivity.setProgress(progress * 100); //Make the bar disappear after URL is loaded
// Return the app name after finish loading
if(progress == 100)
MyActivity.setTitle(R.string.app_name);
您可以在此处参考完整教程:ProgressBar in WebView。我只提到了该网站的代码。
修改强>
官方Android文档WebView
中的另一个示例答案 1 :(得分:1)
您可以通过向“活动”添加新属性来实现此目的:
protected ProgressDialog dialog;
当您要打开网页时,请添加以下内容:
dialog = ProgressDialog.show(this, "LOADING", "Website is loading...", true);
YourWebView.loadUrl(url);
/* Prevent WebView from Opening the Browser */
YourWebView.setWebViewClient(new InsideWebViewClient());
然后必须扩展WebViewClient类并添加到onPageFinished方法:
protected class InsideWebViewClient extends WebViewClient {
@Override
public void onPageFinished(WebView view, String url)
{
super.onPageFinished(view, url);
if(dialog != null && dialog.isShowing())
dialog.dismiss();
}
}