【问题标题】:Progressbar on Android webviewAndroid webview 上的进度条
【发布时间】:2011-11-09 12:37:56
【问题描述】:

我对开发 Android 应用还很陌生。基本上,我正在制作一个 webview 模板来显示不同的 URL,其中网站优化了移动设备。

该应用有两个页面:
1 个启动页面。
1 个网页浏览页面。

我已经完成了几个教程,这部分实际上是有效的,所以问题是......

我想在 webview 加载网站时显示一个进度条,然后在加载网站后消失。

我已经做了很多尝试来让它工作,但没有成功。

XML 文件:
基本上有带有ID: 的webview 和带有ID:progressbar 的进度条(不确定是否应该在其中)

JAVA 文件:
Link to preeview of java file

【问题讨论】:

    标签: java android webview progress-bar


    【解决方案1】:

    您忘记添加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的另一个示例

    【讨论】:

    • 也许我只是愚蠢,但我真的无法让它发挥作用。你可以制作一个工作的Java文件吗?我需要在 XML 中更改什么吗?
    【解决方案2】:

    您可以通过向 Activity 添加一个新属性来做到这一点:

    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();
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-02-02
      • 1970-01-01
      • 2019-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-29
      • 1970-01-01
      相关资源
      最近更新 更多