首页 > 解决方案 > Android Navigation - 确认用户导航

问题描述

我在我的应用程序中使用 AndroidX Navigation 组件进行片段导航。当我需要询问用户他是否真的想离开页面或留下时,我有一个场景。我可以很容易地进行进一步的导航 - 只需显示 AlertDialog 并以积极的方式导航。但是,我在阻止用户使用后退按钮弹回或使用抽屉导航到其他地方时遇到了真正的问题。也找不到像导航监听器这样有用的东西。如何在导航片段中捕获导航尝试?

标签: androidandroidxandroid-navigation

解决方案


正如这个文档所说,您可以添加回调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()
    }

推荐阅读