У меня есть макет в JetPack Compose, где у меня есть пара композиторов (текстовое представление и вход), которые мне нужно оставаться в верхней части экрана, а затем еще один композитный (кнопку), который мне нужно оставаться прикрепленным к нижней части экрана. Когда клавиатура открыта для ввода в текстовый вход, мне нужна кнопка, прикрепленная к нижней части экрана, чтобы подняться вместе с ней, однако этого не происходит. < /P>
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 }
)
}
}
}
Я пытался добиться присоединения сверху/снизу, помещая каждый набор элементов в отдельные столбцы, а затем используя Arrangement.SpaceBetween в столбце-оболочке, но, возможно, это неправильно. Я также попробовал без этого и вместо этого добавил .weight(1f) в столбец с прикрепленными к вершине компонентами. Ни один из них не позволял перемещать раскладку вверх с помощью клавиатуры.
У меня также есть это в основном действии:
WindowCompat.setDecorFitsSystemWindows(window, false)
setContent {
ProvideWindowInsets {
Theme {
// my content
}
}
}
< /code>
и это в манифесте для моей деятельности: < /p>
android:windowSoftInputMode="adjustResize"
Подробнее здесь: https://stackoverflow.com/questions/711 ... ck-compose