在新的Navigation架构组件中,如何实现条件导航?
目前我有一个包含 LoginFragment 和 HomeFragment 的活动。基于某个 login_flag,我曾经从 MainActivity 中调用任一片段。由于 LoginFragment 仅被调用一次,因此我将 startDestination 设置为 HomeFragment,并且导航加载此 HomeFragment。有什么方法可以在导航加载 HomeFragment 之前检查 login_flag 吗?
这就是我的处理方式条件导航 https://developer.android.com/topic/libraries/architecture/navigation/navigation-conditional :
- 将 HomeFragment 设置为起始目的地 https://developer.android.com/topic/libraries/architecture/navigation/navigation-implementing#Designate-start
-
创建一个全球行动 https://developer.android.com/topic/libraries/architecture/navigation/navigation-global-action对于登录片段
<action
android:id="@+id/action_global_loginFragment"
app:destination="@id/loginFragment"
app:launchSingleTop="false"
app:popUpTo="@+id/nav_graph"
app:popUpToInclusive="true" />
-
在内部执行条件导航onViewCreated
:
// HomeFragment.kt
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
if(!appAuth.isAuthenticated()) {
view.findNavController().navigate(R.id.action_global_loginFragment)
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)