我正在使用 Jetpack Compose 并尝试在用户单击 TopAppBar
中的登录按钮时使登录屏幕覆盖整个屏幕。
我使用了 ModalBottomSheetLayout
和 Scaffold
的组合,所以我可以有一个 TopAppBar
和一个 BottomAppBar
。
目前当登录屏幕显示时,它只覆盖屏幕的一半。
val coroutineScope = rememberCoroutineScope()
val bottomState = rememberModalBottomSheetState(ModalBottomSheetValue.Hidden)
ModalBottomSheetLayout(
sheetState = bottomState,
sheetShape = MaterialTheme.shapes.large,
sheetContent = {
FullScreen()
}
) {
Scaffold(
topBar = {
TopAppBar(
...
content = {
NavHost(navController = navController,
startDestination = "journey") {
composable("journey") { JourneyScreen() }
...
bottomBar = {
BottomAppBar(
content = {
BottomNavigation() {
val navBackStackEntry by navController.currentBackStackEntryAsState()
...
@Composable
fun FullScreen() {
Box(modifier = Modifier
.fillMaxSize()
) {
Text("Full Screen")
}
}
被困在这个问题上太久了,感谢任何帮助。
答案 0 :(得分:1)
要使用全屏 ModalBottomSheetLayout
,而不是 state.show()
,请使用:
scope.launch { state.animateTo(ModalBottomSheetValue.Expanded) }