首页 文章

如何在导航架构组件中实现条件导航

提问于
浏览
4

在新的Navigation架构组件中,如何实现条件导航?

目前我有一个使用LoginFragment和HomeFragment的活动 . 基于某个login_flag,我曾经调用MainActivity中的任一片段 . 由于LoginFragment只被调用一次,我已将startDestination设置为HomeFragment,导航加载此HomeFragment . 有没有办法在导航加载HomeFragment之前检查login_flag .

1 回答

  • 2

    您可以在活动中添加导航侦听器,然后根据您的条件导航到LoginFragment,如下所示:

    findNavController(nav_host_fragment).addOnNavigatedListener { controller, destination ->
            when(destination.id) {
                R.id.HomeFragment-> {
                 if(someCondition) {
                   //Navigate to LoginFragment
                 }
    
            }
        }
    

相关问题