Arp*_*kla 2 android kotlin android-jetpack-navigation android-jetpack-compose jetpack-compose-accompanist
我在我的项目中使用伴奏底部表目的地。设置与文档中显示的完全相同。
@Composable
fun MyApp() {
val bottomSheetNavigator = rememberBottomSheetNavigator()
val navController = rememberNavController(bottomSheetNavigator)
ModalBottomSheetLayout(bottomSheetNavigator) {
NavHost(navController, Destinations.Home) {
composable(route = "home") {
HomeScreen(
openBottomSheet = { navController.navigate("sheet") }
)
}
bottomSheet(route = "sheet") {
MyBottonSheet(
navigateToSomeRoute = { navController.navigate("some_route") }
)
}
composable(route = "some_route") {
SomeComposable(
onBackPress = { navController.navigateUp() }
)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
MyBottomSheet这里我有一个打开屏幕的按钮SomeComposable。但是当我从那里向上导航时,我到达了HomeScreen即当我导航离开底部工作表时,底部工作表从后堆栈中弹出。如何将底部工作表保留在后堆栈中,以便当我按“后退”键时SomeComposable返回到打开状态MyBottonSheet(位于 顶部HomeScreen)的上一个状态?
这不可能。根据导航和返回堆栈文档:
对话框目标实现该
FloatingWindow接口,表明它们覆盖返回堆栈上的其他目标。因此,一个或多个FloatingWindow目的地只能出现在导航返回堆栈的顶部。导航到未FloatingWindow自动实现的目标会将所有FloatingWindow目标从堆栈顶部弹出。这可确保当前目的地始终在返回堆栈上的其他目的地上方完全可见。
底部工作表目的地也是FloatingWindow浮动在其他目的地之上的目的地。dialog因此,当您导航到除另一个或目的地之外的任何内容时,预计它们会自动从返回堆栈中弹出bottomSheet。
| 归档时间: |
|
| 查看次数: |
1360 次 |
| 最近记录: |