У меня есть макет в Jetpack Compose, где у меня есть несколько составных элементов (текстовое представление и ввод), которые мне нужно оставаться в верхней части экрана, а затем еще один составной элемент (кнопка), который мне нужно оставаться прикрепленным к нижней части экрана. Когда клавиатура открывается для ввода текста, мне нужна кнопка, прикрепленная к нижней части экрана, чтобы перемещаться вместе с ней вверх, однако этого не происходит.
ProvideWindowInsets(windowInsetsAnimationsEnabled = true) {
Column(
verticalArrangement = Arrangement.SpaceBetween,
modifier = Modifier
.fillMaxSize()
.statusBarsPadding()
.padding(0.dp, 32.dp, 0.dp, 0.dp)
.navigationBarsWithImePadding()
.verticalScroll(rememberScrollState()),
) {
Column {
CustomHeading6(
modifier = Modifier.padding(0.dp, 0.dp, 0.dp, 32.dp),
title = "Enter Email"
)
CustomBody1(
modifier = Modifier.padding(0.dp, 0.dp, 0.dp, 12.dp),
content = "Email:"
)
CustomEmailTextField(
modifier = Modifier.padding(0.dp, 0.dp, 0.dp, 20.dp),
text = viewModel.emailAddress,
onValueChanged = { //removed }
)
}
Column {
CustomButton(
modifier = Modifier.padding(0.dp, 32.dp),
title = "Submit",
onButtonClick = { //removed }
)
}
}
}
Я попытался достичь прикрепления к верхней/внизу, обернув каждый набор элементов в их собственные столбцы, а затем с использованием Arancement.spaceweet между столбцом обертки, но, возможно, это не правильно. Я также попробовал без этого и вместо этого добавил. Веса (1F) в столбец с композиционными устройствами, прикрепленными к вершине. Ни один из них не позволил макету подняться с клавиатурой. WindowCompat.setDecorFitsSystemWindows(window, false)
setContent {
ProvideWindowInsets {
Theme {
// my content
}
}
}
и это в манифесте моей активности:
android:windowSoftInputMode="adjustResize"
Подробнее здесь: https://stackoverflow.com/questions/711 ... ck-compose