我开发了一个简单的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);
}
}
答案 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);
}
}
});