导航托普巴尔带有底部轨道
我在Topappbar中显示“返回”按钮有问题。 我有家庭的底漆和最喜欢的自行车。 当我想显示自行车的详细信息时,我想让箭头回去。
BottomNavgraph:
NavHost(
navController =navController,
startDestination = Screen.Home.route
){
composable(route = Screen.Home.route){
HomeScreen(navController = navController)
}
composable(route = Screen.Favorite.route){
FavoriteScreen(navController = navController)
}
composable(route = Screen.Details.route){
val bike = navController.previousBackStackEntry?.savedStateHandle?.get<Bike>("bike")
bike?.let{
BikeDetaliScreen(navController = navController, movie)
}
}
和Topappbar:
if(navController.previousBackStackEntry != null){
TopAppBar(
title = {
Box(modifier = Modifier.fillMaxWidth()
) {
Image(
painterResource(
id = R.drawable.bike_logo
),
"Logo picture",
modifier = Modifier
.size(130.dp)
.align(Alignment.Center)
)
}
},
backgroundColor = Color(0xFF0B253F)
)
}
问题是我只想在详细信息屏幕上,而不是在家中或喜欢的屏幕上。但是,当我使用以前的backstackentry!= null Somethimes最喜欢的屏幕上有箭头,因为它在堆栈中有房屋屏幕。
I have problem with showing back button in topAppBar.
I have bottomNavigation for Home and favorite bikes.
When i want to show details of the bike I want back arrow to go back.
BottomNavGraph:
NavHost(
navController =navController,
startDestination = Screen.Home.route
){
composable(route = Screen.Home.route){
HomeScreen(navController = navController)
}
composable(route = Screen.Favorite.route){
FavoriteScreen(navController = navController)
}
composable(route = Screen.Details.route){
val bike = navController.previousBackStackEntry?.savedStateHandle?.get<Bike>("bike")
bike?.let{
BikeDetaliScreen(navController = navController, movie)
}
}
And TopAppBar:
if(navController.previousBackStackEntry != null){
TopAppBar(
title = {
Box(modifier = Modifier.fillMaxWidth()
) {
Image(
painterResource(
id = R.drawable.bike_logo
),
"Logo picture",
modifier = Modifier
.size(130.dp)
.align(Alignment.Center)
)
}
},
backgroundColor = Color(0xFF0B253F)
)
}
Problem is I want to have back arrow only in details screen, not in home or favorite. But when I use previousBackStackEntry != null somethimes favorite screen has arrow because it has homeScreen in stack.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以观察当前的后堆栈条目,并相应地显示/隐藏“后背”按钮。
You can observe the current back stack entry and show/hide the back button accordingly.