【问题标题】:WebView showing webpage loading progress only onceWebView 仅显示一次网页加载进度
【发布时间】:2015-11-28 23:43:59
【问题描述】:

This 类似的 SO 问题没有帮助。

我为我的MainActivity 实现了一个简单的WebView,它在应用启动时加载特定网页。我有一个TextView,它显示了当前网页的加载百分比。代码如下

public class MainActivity extends AppCompatActivity {

WebView webView;
final String homeUrl = "https://example.com";
String lastAccessedUrl = homeUrl;
WebChromeClient webChromeClient;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    webView = (WebView) findViewById(R.id.browser);
    WebSettings settings = webView.getSettings();
    settings.setJavaScriptEnabled(true);
    settings.setBuiltInZoomControls(true);
    settings.setLoadsImagesAutomatically(false);
    settings.setLoadWithOverviewMode(true);
    settings.setUseWideViewPort(true);
    webView.canGoBack();
    webView.canGoForward();
    webView.setWebViewClient(new MyBrowser());
    webView.loadUrl(homeUrl);

    webChromeClient = new WebChromeClient(){
        @Override
        public void onProgressChanged(WebView view, int newProgress) {
            TextView textView = (TextView) findViewById(R.id.loadingPercentage);
            textView.setText(""+newProgress);
        }
    };
    webView.setWebChromeClient(webChromeClient);
}

private class MyBrowser extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        lastAccessedUrl = url;
        view.loadUrl(url);
        return true;
    }
}
}

我面临的问题是,TextView 仅在网页第一次加载时显示加载百分比。然后将其永久设置为 100。然后,如果我单击第一页上的任何链接,TextView 不会从零开始。

如果您投反对票,请在 cmets 中证明其合理性。 任何帮助将不胜感激。

【问题讨论】:

  • 我不认为这是导致您的问题的原因,但您应该将TextView textView = (TextView) findViewById(R.id.loadingPercentage); 放在onCreate() 的进度更改回调之外。如果您为活动找到一次视图,则可以继续更改其中的文本,而不必每次都重新找到它。
  • @FoamyGuy 这是明显而愚蠢的错误。谢谢你指出。 :)。

标签: android webview


【解决方案1】:

您的代码没有这样的问题。确保您单击的是 url。如果您单击展开视图,它只会展开以向您显示某些数据。它不会作为新网址加载。点击说,www.stackoverflow.com 并检查它是否显示加载百分比。

【讨论】:

  • 这就是问题所在。谢谢你。想通了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-15
  • 2015-06-04
  • 1970-01-01
相关资源
最近更新 更多