android - Android Navigation - 确认用户导航
问题描述
我在我的应用程序中使用 AndroidX Navigation 组件进行片段导航。当我需要询问用户他是否真的想离开页面或留下时,我有一个场景。我可以很容易地进行进一步的导航 - 只需显示 AlertDialog 并以积极的方式导航。但是,我在阻止用户使用后退按钮弹回或使用抽屉导航到其他地方时遇到了真正的问题。也找不到像导航监听器这样有用的东西。如何在导航片段中捕获导航尝试?
解决方案
正如这个文档所说,您可以添加回调onBackPressedDispatcher
并修改后按行为:
val callback = onBackPressedDispatcher.addCallback(this) {
AlertDialog.Builder(this@Activity)
.setMessage("Are you sure?")
.setPositiveButton(android.R.string.ok, DialogInterface.OnClickListener { _, _ ->
handleOnBackPressed()
})
.setNegativeButton(android.R.string.cancel, null)
.create()
.show()
}
推荐阅读
- java - 当人脸位于所需帧中时,如何实时启动 ML Kit 人脸检测
- angular - Http调用在角度通用中进行了两次
- php - 将 HTML 标记添加到所见即所得编辑器
- java - 重新获取 BufferedImage 的先前 Graphics2D 实例
- wordpress - 如何在模板 Wordpress 中插入标题属性
- android - 实现 webview 以使用 vimeo 嵌入链接
- weblogic - 重新启动服务器后 Weblogic 管理控制台未启动
- python - 您可以使用 MySQL 返回作为条件在 Python 中运行 for 循环吗?
- javascript - 在 MonoRepo 中编译 React 项目失败
- sql - 使用With Clause后如何保存数据?