【问题标题】:How to Stop Android webView swipeToRefresh loading progressbar?如何停止 Android webView swipeToRefresh 加载进度条?
【发布时间】: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);
            }
        }

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

【问题讨论】:

标签: java android android-layout webview pull-to-refresh


【解决方案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()),应用就会崩溃
    猜你喜欢
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多