2017-07-26 111 views
1

注意:這個問題已經被問到here.哪些沒有得到任何答案,所以我決定重新發布我的代碼。如何停止Android webView swipeToRefresh加載進度條?

我想要一個webView刷新當前頁面,當用戶從頂部工作正常拉下屏幕。問題是加載進度條在頁面加載後沒有停止。

這裏的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); 
      } 
     } 

我已經更新了代碼,但它仍然加載。

+0

試試這個答案https://stackoverflow.com/a/28582653/6834114 – Omi

回答

0

這有固定的問題:

 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

設置可見性已經進入您的seOnRefreshListner進度條並停止在webview加載後刷新swipeLayout。

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);} }'沒有工作。 –

-1

更精確地嘗試代碼

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

它崩潰的應用程序沒有'if(null!= swipeLayout && swipeLayout.isRefreshing())' –