How to show loading image or progress bar on WebView

前端 未结 3 1648
陌清茗
陌清茗 2021-01-29 02:29

I have a webView in android that loads a particular site, i want to display a loading icon or progress bar on clicking any of the links inside the webView.

    w         


        
相关标签:
3条回答
  • 2021-01-29 03:07
     webViewClient = (WebView) findViewById(R.id.contentContainer);
    
        WebSettings webSettings = webViewClient.getSettings();
    
        webSettings.setJavaScriptEnabled(true);
    
        webViewClient.setWebViewClient(new WebViewClient(){
    
         public void onProgressChanged(WebView view, int progress) {
                 activity.setTitle("Loading...");
                 activity.setProgress(progress * 100);
                    if(progress == 100)
                       activity.setTitle("Your Title");
                 });
    
        webViewClient.loadUrl("URL");
    
    Following Link May help you as well : http://www.firstdroid.com/2010/08/04/adding-progress-bar-on-webview-android-tutorials/
    
    0 讨论(0)
  • 2021-01-29 03:15
     public class CustomWebViewClient extends WebViewClient {
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                showProgressBar();
            }
    
            @Override
            public void onPageFinished(WebView view, String url) {
                hideProgressBar();
            }
        }
    
    
        webViewClient.setWebViewClient(new CustomWebViewClient());
    
    0 讨论(0)
  • 2021-01-29 03:17

    First, you have to figure out when the click happens :

    webView.setWebViewClient(new WebViewClient() { 
                public boolean shouldOverrideUrlLoading(WebView view, String url){
                    webView.loadUrl(url); 
                    // Here the String url hold 'Clicked URL' 
                    return false; 
                } 
            });
    

    Then, you have to put the Progressbar in a FrameLayout with your WebView.

    <FrameLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    
    <Progressbar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    
    <WebView
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    
    </FrameLayout> 
    

    So, when the click happens, you can show your progressbar inside your Activity.

    webView.setWebViewClient(new WebViewClient() { 
                public boolean shouldOverrideUrlLoading(WebView view, String url){
                if (url.equals("your_url"){
                progressbar.setVisibility(View.VISIBLE);
                } 
                    return false; 
                } 
            });
    
    0 讨论(0)
提交回复
热议问题