Как показать индикатор выполнения для макета до загрузки WebView - PullRequest
2 голосов
/ 20 января 2012

Я загружаю WebView в LinearLayout и хочу отображать ProgressBar внутри этого макета, пока WebView не будет полностью загружен. Я wnet через ссылки ниже, и они, кажется, действительно здорово, но я не хочу использовать ProgressDialog , вместо этого я хотел бы использовать прогрессбар внутри макета.

http://xjaphx.wordpress.com/2011/07/31/load-webview-with-progressdialog/

как отобразить индикатор прогресса на веб-просмотре?

Как бы я это сделал?

Скажем, например,

if(pos==0)
{
 mLayout.setVisibility(View.VISIBLE);
 mWeb.loadUrl("http://android.stackexchange.com/");
}

Внутри mLayout Я хотел бы отображать индикатор выполнения, пока страница не отобразится.

Ответы [ 3 ]

7 голосов
/ 20 января 2012

Чтобы определить индикатор выполнения внутри веб-просмотра:

1. Определите ProgressBar и Webview внутри макета следующим образом:

<ProgressBar android:id="@+id/progressbar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="fill_parent"
        android:layout_height="8px"
        android:max="100"
        android:visibility="gone" />

<ScrollView
    android:id="@+id/ScrollView01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fadingEdge="none" >

<WebView
    android:id="@+id/webkit"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

</ScrollView>

2. Внутри вашей деятельности:

    progressBar = (ProgressBar)findViewById(R.id.progressbar);

    progressBar.setProgress(0);

    progressBar.setVisibility(View.VISIBLE);

    WebView mWebView = (WebView)findViewById(R.id.webkit);

    mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);

    mWebView.setWebChromeClient(new WebChromeClient(){

    public void onProgressChanged(WebView view, int progress) {

         progressBar.setProgress(progress);
         if(progress == 100) {
             progressBar.setVisibility(View.GONE);
          }
       }
    });
3 голосов
/ 20 января 2012

Вы можете просто использовать webView setPictureListener () следующим образом:

// here you can start a loading wheel

   webView.setPictureListener(new WebView.PictureListener() {
      public void onNewPicture(WebView webView, Picture picture) {
           // close your loading wheel here
            }
        });

   //load your url
   webView.loadUrl(yourUrl);
0 голосов
/ 24 июня 2016

Я уверен, что это лучший способ определить, что загрузка страницы завершена.

    webView.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            loadingIndicator.setVisibility(View.GONE);
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...