我正在尝试在 Jetpack Compose 中实现一个带有文本和文本字段的简单底部表单模式。一切看起来都很好,直到我按下文本字段并出现键盘。问题是底部表单模态被推得很高。看起来它的底部边距是键盘高度的两倍。
这是代码:
var showBottomSheet by remember { mutableStateOf(false) }
if (showBottomSheet) {
ModalBottomSheet(
onDismissRequest = { showBottomSheet = false },
windowInsets = WindowInsets.ime,
dragHandle = { BottomSheetDefaults.DragHandle() },
) {
CollectionFormPage()
}
}
这是模态内容的代码
@Composable
fun CollectionFormPage(
collectionFormViewModel: CollectionFormViewModel = hiltViewModel(),
) {
val state = collectionFormViewModel.state.collectAsState()
Surface(
modifier = Modifier
.padding(start = 16.dp, end = 16.dp, bottom = 16.dp)
) {
Column {
Text(
"Test", style = MaterialTheme.typography.titleMedium.copy(
color = MaterialTheme.colorScheme.onSurface
)
)
TextField(
modifier = Modifier.fillMaxWidth(),
value = state.value.label,
onValueChange = {
//TODO
})
}
}
}
该问题已在最新版本中修复。请更新一下
implementation 'androidx.compose.material3:material3:1.2.0-alpha10'