【发布时间】:2020-10-11 18:15:21
【问题描述】:
这里我使用的是左侧导航抽屉,我使用导航图和导航控制器以及导航抽屉菜单 xml 进行了此操作。但是现在当我从左侧导航抽屉的第一项 nav_home 中单击时,我需要重新加载导航主机片段,但我不能。但是其他菜单项可以单击以转到其他片段,但是当我导航到导航主机片段时遇到问题。可能吗 ??????或者我需要改变整个过程?????
这是我导航的主要活动代码
覆盖 fun onNavigationItemSelected(item: MenuItem): Boolean {
if (item.itemId == R.id.nav_logout){
val intent = Intent(this, SignInActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
val troyeeAppSession = TroyeeAppSession(this)
// start the new activity
startActivity(intent)
troyeeAppSession.setStatus(false)
Log.d("ClickTest","LogoutClick")
} else if (item.itemId == R.id.nav_order_list){
Log.d("ClickTest","Order List Click")
val navController = Navigation.findNavController(this!!,R.id.nav_host_fragment)
navController.navigate(R.id.nav_order_list)
drawerLayout.closeDrawer(GravityCompat.START,true)
} else if (item.itemId == R.id.nav_collection_list){
Log.d("ClickTest","Collection List Click")
val navController = Navigation.findNavController(this!!,R.id.nav_host_fragment)
navController.navigate(R.id.nav_collection_list)
drawerLayout.closeDrawer(GravityCompat.START,true)
} else if (item.itemId == R.id.nav_home){
Log.d("ClickTest","Home Button Click")
/* val navController = Navigation.findNavController(this!!,R.id.nav_host_fragment)
navController.navigate(R.id.nav_collection_list)*/
val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
navController.navigate(R.id.nav_host_fragment)
drawerLayout.closeDrawer(GravityCompat.START,true)
}
return true
}
【问题讨论】:
标签: android kotlin mvvm navigation navigation-drawer