如何停止 Android webView swipeToRefresh 加载进度条?

Posted

技术标签:

【中文标题】如何停止 Android webView swipeToRefresh 加载进度条?【英文标题】:How to Stop Android webView swipeToRefresh loading progressbar? 【发布时间】:2018-01-01 15:41:10 【问题描述】:

注意:这个问题已经被问过here.,但没有得到任何答案,所以我决定用我的代码重新发布。

当用户从顶部拉下屏幕时,我希望 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);
            
        

我已经更新了代码,但它仍在加载中。

【问题讨论】:

试试这个答案***.com/a/28582653/6834114 【参考方案1】:

这已经解决了这个问题:

        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);
                
            
        );

【讨论】:

【参考方案2】:

在你的 seOnRefreshListner 中设置为 progressBar 的可见性,并在 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 
   );

【讨论】:

@MaheshGawhne if(null != swipeLayout) swipeLayout.setRefreshing(false); 没用。【参考方案3】:

更准确地说是你尝试代码

if (swipeLayout.isRefreshing()) 
    swipeLayout.setRefreshing(false);

【讨论】:

如果没有if (null != swipeLayout && swipeLayout.isRefreshing()),应用就会崩溃

以上是关于如何停止 Android webView swipeToRefresh 加载进度条?的主要内容,如果未能解决你的问题,请参考以下文章

上次更新Android System Webview后,代理设置停止工作

取消在 Android 上的 WebView 中加载

原生Android Webview HTML5兼容性

如何在 WebView 中停止视频播放

如何在片段内制作 Swip ActionBar-Tabs

Android:Html 5 视频在活动完成时不会停止