NavController
有一个默认带有回退栈的navigate
方法。如何在没有回退栈的情况下导航到片段?
请注意,我不是在询问FragmentTransaction
。
NavController
有一个默认带有回退栈的navigate
方法。如何在没有回退栈的情况下导航到片段?
请注意,我不是在询问FragmentTransaction
。
A -> B
And want to get to a back stack of
A -> C
app:popUpTo
(如果需要,还可以使用app:popUpToInclusive="true"
)或使用相应的NavOptions
API来实现。<action
android:id="@+id/goToC"
app:destination="@+id/c"
app:popUpTo="@+id/b"
app:popUpToInclusive="true"/>
val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)
val navView: NavigationView = findViewById(R.id.nav_view)
val navController = findNavController(R.id.nav_host_fragment)
appBarConfiguration = AppBarConfiguration(
setOf(
R.id.nav_home, R.id.nav_gallery, R.id.nav_slideshow,
R.id.nav_tools, R.id.nav_share, R.id.nav_send
), drawerLayout
)
setupActionBarWithNavController(navController, appBarConfiguration)
navView.setupWithNavController(navController)
navView.setNavigationItemSelectedListener {
//----------- Pop Back Stack
navController.popBackStack()
//---------------------------
navController.navigate(it.itemId)
drawerLayout.closeDrawers()
true
}
fragmentTransaction.addToBackStack(null);
。 - Mahdi MoqadasifragmentTransaction
。 - Farrux Bahodirov