WebView - 如果存在历史记录,则只显示后退按钮
WebView - only show back button if back history exists
我开发了一个简单的 webview 应用程序。我添加了一个用作后退按钮的按钮,以便用户可以返回一页。
该按钮最初是隐藏的,只有在存在历史记录时才会显示。
我怎样才能意识到这一点?
代码很简单:
backButton = findViewById(R.id.backButton);
backButton.setEnabled(blizzView.canGoBack());
但是我必须在哪里调用它呢? "some site loaded" 事件是如何调用的?
更新:
我尝试应用@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);
}
}
您可以使用WebView#canGoBack
to find out if there is a backstack. You can check for that after the page is loaded e.g. in WebViewClient#onPageFinished
它是这样工作的:
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);
}
}
});
我开发了一个简单的 webview 应用程序。我添加了一个用作后退按钮的按钮,以便用户可以返回一页。
该按钮最初是隐藏的,只有在存在历史记录时才会显示。 我怎样才能意识到这一点?
代码很简单:
backButton = findViewById(R.id.backButton);
backButton.setEnabled(blizzView.canGoBack());
但是我必须在哪里调用它呢? "some site loaded" 事件是如何调用的?
更新:
我尝试应用@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);
}
}
您可以使用WebView#canGoBack
to find out if there is a backstack. You can check for that after the page is loaded e.g. in WebViewClient#onPageFinished
它是这样工作的:
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);
}
}
});