Question

I am trying to implement a webview loader, but once the page has loaded, the loader keeps showing:

private WebView webView;

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.webcontent);

    webView = (WebView) findViewById(R.id.webView);
    final ProgressDialog progDailog = ProgressDialog.show(WebActivity.this, "Loading       ","Please wait...     ", true);

    progDailog.setCancelable(false);
    webView.setWebChromeClient(new WebChromeClient() {

        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            progDailog.show();
            view.loadUrl(url);

            return true;                
        }

        public void onPageFinished(WebView view, final String url) {
            progDailog.dismiss();
        }
    });

    //webView = (WebView) findViewById(R.id.webView);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setDomStorageEnabled(true);   
    webView.addJavascriptInterface(new WebAppInterface(this), "Android");
    webView.loadDataWithBaseURL("www.example.com", null, "text/html", "UTF-8", null);
    webView.loadUrl("www.example.com");

}

I believe "onPageFinished" should remove the loader once the page has loaded?

Thanks

Was it helpful?

Solution

Replace this:

webView.setWebChromeClient(new WebChromeClient() {

    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        progDailog.show();
        view.loadUrl(url);

        return true;                
    }

    public void onPageFinished(WebView view, final String url) {
        progDailog.dismiss();
    }
});

by this:

webView.setWebViewClient(new WebViewClient(){
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            progDailog.show();
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            progDailog.dismiss();
        }
    });

It worked for me.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top