Jetpack Compose: нижняя кнопка перемещается вверх вместе с клавиатурой, ее можно прокручивать, а не изменять размер.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Jetpack Compose: нижняя кнопка перемещается вверх вместе с клавиатурой, ее можно прокручивать, а не изменять размер.

Сообщение Anonymous »

Я создаю экран с помощью Jetpack Compose с Scaffold, Surface и ConstraintLayout.

Экран имеет BasicTextField в центре и кнопку Продолжить, закрепленную внизу.
Когда я нажимаю на BasicTextField и открывается клавиатура, кнопка Продолжить перемещается вверх с помощью клавиатуры.

Однако я хочу другое поведение:
  • Кнопка должна оставаться внизу макета
  • Она может располагаться за клавиатурой
  • Экран должен быть прокручиваемым, чтобы я мог прокручивать и отображать кнопку, когда необходимо
  • Размер макета НЕ должен изменяться при открытии клавиатуры
Вот мой упрощенный код:

Код: Выделить всё

Scaffold {
Surface(
modifier = Modifier
.fillMaxSize()
.background(Purple)
.padding(it)
.consumeWindowInsets(it)
.imePadding()
) {

ConstraintLayout(
modifier = Modifier
.fillMaxSize()
.background(Purple)
) {

val (phoneField, continueButton) = createRefs()

Box(
modifier = Modifier
.constrainAs(phoneField) {
linkTo(parent.top, parent.bottom)
linkTo(parent.start, parent.end)
width = Dimension.fillToConstraints
}
.padding(horizontal = 16.dp)
.height(100.dp)
) {

BasicTextField(
value = phoneNumber,
onValueChange = { newValue ->
if (newValue.all { it.isDigit() } && newValue.length 

Подробнее здесь: [url]https://stackoverflow.com/questions/79882508/jetpack-compose-bottom-button-moves-up-with-keyboard-want-it-scrollable-instea[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»