java - 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);
}
}
解决方案
你可以用它WebView#canGoBack
来查明是否有backstack。您可以在页面加载后检查,例如WebViewClient#onPageFinished
推荐阅读
- apache-kafka - Kafka:序列化时的消息大于您使用 max.request.size 配置配置的最大请求大小
- amazon-s3 - 无法从 s3 存储桶导入文件和解析文件到 h2o 流版本 3.22.0.2
- c# - 在 ASP.NET Core 2.x 中手动创建 HttpContext
- sql - FOR XML 无法序列化节点 NoName 的数据 - 无法替换 XML 字符
- ios - Objective-C 中的递增和递减函数错误
- tsc - 将类型转换回值
- sql - 将 DECODE() 合并到 SQL 中?
- hyperledger-fabric - 区块链浏览器:错误:找不到模块
- python-2.7 - 为什么我没有在 python 中获得表情符号别名?
- python - 无法将 csv 数据导入到 HTML 中每个帧的表格(#tablib)