【问题标题】:set default destination in navigation architecture component based on user type根据用户类型在导航架构组件中设置默认目的地
【发布时间】:2020-07-03 18:17:00
【问题描述】:
我正在研究导航组件架构,我在验证用户身份后遇到了如何设置起始目的地的问题,因为我有两种类型的用户:管理员和用户,我让我的应用包含 4活动
loginActivity ,signUpActivity userMainActivity :使用导航组件并包含与用户相关的所有片段
和adminMainActivity :使用导航组件并包含与管理相关的所有片段
我无法弄清楚如何处理此问题并在登录后通过设置默认值启动用户或管理员活动
我应该将用户和管理员放在单独的导航图中还是在这种情况下放置什么
【问题讨论】:
标签:
android
navigation
android-architecture-navigation
android-navigation-graph
【解决方案1】:
您可以以编程方式设置起始目的地,就像:
val navHostFragment = nav_host_fragment as NavHostFragment
val graphInflater = navHostFragment.navController.navInflater
navGraph = graphInflater.inflate(R.navigation.nav_graph)
navController = navHostFragment.navController
val destination = if (intent.getBooleanExtra(IS_ADMIN,false))
R.id.adminhomeFragment
else R.id.userhomeFragment
navGraph.startDestination = destination
navController.graph = navGraph