我的应用程序有一个带有 Scaffold 和 BottomNavigation 栏的主屏幕:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val navController = rememberNavController()
MyApplicationTheme {
Scaffold(
bottomBar = {
BottomBar(navController = navController)
}
) {
NavigationGraph(navController = navController)
}
}
}
}
...
@Composable
fun NavigationGraph(navController: NavHostController){
NavHost(navController = navController, startDestination = BottomMenuOption.Home.route) {
composable(route = BottomMenuOption.Home.route) {
HomeScreen(navController = navController)
}
composable(route = BottomMenuOption.Settings.settings) {
SettingsScreen()
}
composable(route = BottomMenuOption.Profile.route) {
ProfileScreen()
}
composable(route = "feature") {
FeatureScreen()
}
}
}
FeatureScreen
有它自己Scaffold
的 atopBar
而不是 bottomBar ,当我从 导航到它时HomeScreen
,我想从主屏幕替换前一个,只看到一个 topBar 但相反,我在屏幕上看到了两个栏。
@Composable
fun FeatureScreen() {
Scaffold (
topBar = {
TopBar(" Feature Screen")
}
) {
}
}
有可能做到这一点吗?我认为它可以通过使用一个新的活动来完成,但理想情况下,我想保持单一活动的方法。