2015-08-17 1 views
1

J'ai mis en œuvre swipe pour actualiser mon WebView et son fonctionnement correct. Mais il y a un problème que je ne suis pas capable de résoudre. Le problème est mon glissement pour rafraîchir les peaux après 6 secondes. Il n'est pas resté là jusqu'à ce que le chargement de WebView soit terminé. Ce que je veux c'est que Glisser pour actualiser devrait rester visible jusqu'à ce que la page se charge complètement.Glisser pour rafraîchir les peaux avant de charger le WebView

Mes Implémentations

swipeView = (SwipeRefreshLayout) view.findViewById(R.id.swipe); 
myWebView = (WebView) view.findViewById(R.id.webview); 
myWebView.loadUrl("http://m.facebook.com"); 
swipeView.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener()  
     { 
     @Override 
     public void onRefresh() 
     { 
        swipeView.setRefreshing(true); 
        (new Handler()).postDelayed(new Runnable() 
          { 
          @Override 
          public void run() 
           { 
           swipeView.setRefreshing(false); 
           myWebView.loadUrl("http://m.facebook.com"); 
           } 
         }, 6000); 
        }}); 

Répondre

5

Utilisez auditeur WebView et terminer votre Swipe dans l'auditeur onPageFinished ..

Par exemple comme ci-dessous

mWebView.setWebViewClient(new WebViewClient() { 

    public void onPageFinished(WebView view, String url) { 
     // do your stuff here 

     swipeView.setRefreshing(false); 
    } 
}); 

Pour votre cas, modifiez votre code comme ci-dessous,

swipeView = (SwipeRefreshLayout) view.findViewById(R.id.swipe); 
myWebView = (WebView) view.findViewById(R.id.webview); 
mWebView.setWebViewClient(new WebViewClient() { 

    public void onPageFinished(WebView view, String url) { 
     // do your stuff here 

     swipeView.setRefreshing(false); 
    } 
}); 
swipeView.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener()  
     { 
     @Override 
     public void onRefresh() 
     { 
       myWebView.loadUrl("http://m.facebook.com"); 

     }}); 
+0

Qu'est-ce qui fait environ 6000? dans mon code? – Faiyaz

+1

C'est un temps de gestionnaire que vous avez utilisé. –

+0

Oui, je le sais, mais que dois-je faire avec? Devrais-je le supprimer après l'implémentation de onPageFinished? – Faiyaz