Android ProgessBar while loading WebView

后端 未结 12 2606
闹比i
闹比i 2020-12-08 01:52

In my application, I have a WebView which loads any URL from the internet. Now, sometimes due to slow networks the page takes a long time to load and the user s

12条回答
  •  难免孤独
    2020-12-08 02:53

    String url = "https://stackoverflow.com/questions/11241513/android-progessbar-while-loading-webview";
    setProgressBarVisibility(View.VISIBLE);
    
    webView.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            setProgressBarVisibility(View.VISIBLE);
        }
    
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            setProgressBarVisibility(View.GONE);
        }
    
        @Override
        public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
            super.onReceivedError(view, request, error);
            setProgressBarVisibility(View.GONE);
        }
    });
    
    webView.loadUrl(url);
    

    Also add method:

    private void setProgressBarVisibility(int visibility) {
        // If a user returns back, a NPE may occur if WebView is still loading a page and then tries to hide a ProgressBar.
        if (progressBar != null) {
            progressBar.setVisibility(visibility);
        }
    }
    

提交回复
热议问题