WebView仅显示一次网页加载进度

时间:2015-11-24 16:18:42

标签: android webview

This类似的问题没有帮助。

我已经为我的WebView实施了一个简单的MainActivity,它会在应用启动时加载特定的网页。我有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不会从零开始。

如果你投票失败,请在评论中说明理由。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

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