Форма помещается на экран, пока не открылась клавиатура. Добавить снизу 300 dp — хрупкое решение: высота IME зависит от устройства, режима и самой клавиатуры.
Для Compose проверьте, какой контейнер получает IME-insets. Например, у прокручиваемой области формы можно использовать Modifier.imePadding(): отступ меняется вместе с клавиатурой. Но фиксированная кнопка вне этого контейнера сама не переместится — её область тоже должна учитывать IME.
LazyColumn(Modifier.imePadding()) {
// Поля формы
}Это фрагмент размещения полей, а не готовый экран. Проверьте цепочку родителей: inset-модификаторы учитывают уже потреблённые отступы, а обычный padding не сообщает об этом автоматически. Слепое сложение padding и insets может дать лишнюю пустоту.
Критерий готовности: последнее поле и действие доступны при открытой IME, прокрутке и крупном шрифте. Закрывать клавиатуру должно быть удобно, но обязательная кнопка не должна зависеть от этого.
#Android #Compose #Практика
