如何解决使用 NavComponents 从 BottomNav 导航到全屏
我有一个 BottomNavigationView 并且我在我的应用程序中使用 NavComponents。在我的 MainActivity 中,我有 BottomNavView,我正在设置这样的选项卡:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val graphIds = listOf(
R.navigation.nav_graph_marketplace,R.navigation.nav_graph_my_shop,R.navigation.nav_graph_orders
)
navController = bottom_nav.setupWithNavController(
graphIds,supportFragmentManager,R.id.fragment,intent
)
signInViewModel = ViewModelProvider(this).get(SignInViewModel::class.java)
signInViewModel.verifyUserAuthState(FirebaseAuth.getInstance()) { signInState ->
when (signInState) {
SignInState.NotSignedIn -> {
navController.value!!.navigate(R.id.action_main_to_siginIn)
}
SignInState.SmsSent ->
navController.value!!.navigate(R.id.action_marketplaceFragment_to_siginIn)
}
}
navController.value!!.addOnDestinationChangedListener { _,destination,_ ->
if (destination.id == R.navigation.nav_main ||
destination.id == R.navigation.nav_graph_marketplace ||
destination.id == R.navigation.nav_graph_my_shop ||
destination.id == R.navigation.nav_graph_orders) {
bottom_nav.visibility = View.VISIBLE
} else {
bottom_nav.visibility = View.GONE
}
}
}
如您所见,我尝试验证用户是否已登录。如果未登录,我会将他们带到登录片段。但它不起作用,最终崩溃:
Navigation destination cannot be found from the current destination
下图显示了我拥有的导航图。市场、我的商店和订单图表是标签。主要是我在 main.xml 中添加到 FragmentHost 的那个,而登录是一个单独的导航,我想在用户未登录时启动它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。