在新的Navigation架构组件中,如何实现条件导航?
目前我有一个使用LoginFragment和HomeFragment的活动 . 基于某个login_flag,我曾经调用MainActivity中的任一片段 . 由于LoginFragment只被调用一次,我已将startDestination设置为HomeFragment,导航加载此HomeFragment . 有没有办法在导航加载HomeFragment之前检查login_flag .
您可以在活动中添加导航侦听器,然后根据您的条件导航到LoginFragment,如下所示:
findNavController(nav_host_fragment).addOnNavigatedListener { controller, destination -> when(destination.id) { R.id.HomeFragment-> { if(someCondition) { //Navigate to LoginFragment } } }
1 回答
您可以在活动中添加导航侦听器,然后根据您的条件导航到LoginFragment,如下所示: