首页 > 解决方案 > 使用单个活动和导航组件替代片段中活动的 onSupportNavigateUp

问题描述

onSupportNavigateUp()在活动中使用,现在我正在使用单一活动架构和导航组件问题是我卡在这里我没有找到任何替代onSupportNavigateUp()onBackPressed()fragmentnavcontroller

override fun onSupportNavigateUp(): Boolean {
    // some code like showing ad
    onBackPressed()
    return super.onSupportNavigateUp()
}

但我找到了解决方案onBackPressed()onBackPressedDispatcher但问题是只有在按下导航栏后退按钮时才有效,不适用于工具栏向上按钮

requireActivity().onBackPressedDispatcher.addCallback(this) {
             // some code like showing ad
        }

标签: androidandroid-fragmentsandroid-architecture-navigation

解决方案


对我来说,这项工作是你已经设置了像这样的工具栏的导航组件

toolbar.setupWithNavController(findNavController())

toolbar.setNavigationOnClickListener {
            // some code
            findNavController().navigateUp()
        }

推荐阅读