progress bar when loading page in an android web view

1
  

Good afternoon, it turns out that I have a webview an android works perfectly for me when I start the request but when loading another page it does not show the progress.
  this is the code that works well but only when loading the main page.

    package com.barest.barest;

public class MainActivity extends AppCompatActivity {
    WebView webView;
    ProgressBar bar;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        webView = (WebView) findViewById(R.id.webView);
        bar=(ProgressBar) findViewById(R.id.progressBar2);
        webView.setWebViewClient(new myWebclient());
        webView.setWebChromeClient(new WebChromeClient());

        webView.getSettings().setJavaScriptEnabled(true);
        webView.loadUrl("http://miweb/index.html");

    }

    public class myWebclient extends WebViewClient{
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            bar.setVisibility(View.GONE);
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return super.shouldOverrideUrlLoading(view, url);
        }
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if((keyCode==KeyEvent.KEYCODE_BACK) && webView.canGoBack()){
            webView.goBack();
            return true;
        }

        return super.onKeyDown(keyCode, event);
    }
}
    
asked by juan perez 02.07.2018 в 19:17
source

1 answer

0

You change the visibility of your ProgressBar when you finish loading the page:

@Override
public void onPageFinished(WebView view, String url) {
    super.onPageFinished(view, url);
    bar.setVisibility(View.GONE);
}

But do not change your visibility again, use the onPageStarted() method to show it again using setVisibility(View.VISIBLE) :

@Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
        bar.setVisibility(View.VISIBLE); //* muestra ProgressBar
    }
    
answered by 02.07.2018 / 19:39
source