2017-07-26 6 views
1

Note: Cette question a déjà été posée here. qui n'a pas obtenu de réponse, j'ai donc décidé de la rediffuser avec mon code.Comment arrêter Android WebView swipeToRefresh loading progressbar?

Je veux un webView pour actualiser la page actuelle lorsqu'un utilisateur tire vers le bas l'écran du haut qui fonctionne bien. Le problème est que la barre de progression du chargement ne s'arrête pas après le chargement de la page.

Voici le MainActivity.java

// Swipe to Refresh 
     SwipeRefreshLayout swipeLayout = (SwipeRefreshLayout)this.findViewById(R.id.swipeToRefresh); 
     swipeLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { 
      @Override 
      public void onRefresh() { 
       myWebView.reload(); // refreshes the WebView 
      } 
     }); 
    } 
@Override 
     public void onPageFinished(WebView view, String url) { 
      super.onPageFinished(view, url); 
      progressBar.setVisibility(View.GONE); 
      if (null != swipeLayout && swipeLayout.isRefreshing()) { 
       swipeLayout.setRefreshing(false); 
      } 
     } 

J'ai mis à jour le code, mais il est toujours en chargement.

+0

essayer cette réponse https://stackoverflow.com/a/28582653/6834114 – Omi

Répondre

0

Cela a résolu le problème:

 final SwipeRefreshLayout swipeLayout = (SwipeRefreshLayout)this.findViewById(R.id.swipeToRefresh); 
     swipeLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { 
      @Override 
      public void onRefresh() { 
       myWebView.reload(); // refreshes the WebView 

       if (null != swipeLayout) { 
        swipeLayout.setRefreshing(false); 
       } 
      } 
     }); 
0

Définissez la visibilité passée à progressBar à l'intérieur de votre seOnRefreshListner et arrêtez l'actualisation de swipeLayout après le chargement de Webview.

swipeLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { 
    @Override public void onRefresh() { // Insert your code here 
     ProgressBar. SetVisibility(GONE); 
     if(null != swipeLayout) { 
      swipeLayout.setRefreshing(false); 
     }   
     myWebView.reload(); // refreshes the WebView 
    } }); 
+0

@MaheshGawhne 'if (null! = swipeLayout) { swipeLayout.setRefreshing (false); } 'n'a pas fonctionné. –

-1

plus précisément vous essayez le code

if (swipeLayout.isRefreshing()) { 
    swipeLayout.setRefreshing(false); 
} 
+0

Il plante l'application sans 'if (null! = SwipeLayout && swipeLayout.isRefreshing())' –