WebView-仅在存在后退历史记录时显示后退按钮

时间:2019-07-19 10:50:49

标签: java android webview

我开发了一个简单的Webview应用程序。我添加了一个按钮,该按钮应充当后退按钮,以便用户可以向后浏览一页。

该按钮最初是隐藏的,仅在存在历史记录时才显示。 我怎么能意识到这一点?

代码很简单:

backButton = findViewById(R.id.backButton);
backButton.setEnabled(blizzView.canGoBack());

但是我必须在哪里打电话呢?如何调用“加载某些网站”事件?

更新

我尝试应用@Murats答案,但没有任何反应:

private WebView blizzView;  // my webview
private Button backButton;

public void onPageFinished(WebView view, String url)
{
    backButton = findViewById(R.id.backButton);
    backButton.setEnabled(blizzView.canGoBack());

    if (blizzView.canGoBack()) {
        backButton.setVisibility(View.VISIBLE);
    } else {
        backButton.setVisibility(View.INVISIBLE);
    }

}

2 个答案:

答案 0 :(得分:2)

您可以使用WebView#canGoBack来确定是否存在后退堆栈。您可以在页面加载后进行检查,例如在WebViewClient#onPageFinished

答案 1 :(得分:0)

它是这样的:

    blizzView.setWebViewClient(new WebViewClient() {      //
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);

            backButton = findViewById(R.id.backButton);
            backButton.setEnabled(blizzView.canGoBack());

            if (blizzView.canGoBack()) {
                backButton.setVisibility(View.VISIBLE);
            } else {
                backButton.setVisibility(View.INVISIBLE);
            }

        }
    });