Как добавить пространство между вводом текста и верхней частью клавиатурыIOS

Программируем под IOS
Ответить
Anonymous
 Как добавить пространство между вводом текста и верхней частью клавиатуры

Сообщение Anonymous »

У моего экрана есть поле ввода внизу. При открытии клавиатуры (Android, iOS) она выдвигает вход в верхнюю часть, чтобы она оставалась над клавиатурой. Базовая линия ввода находится над клавиатурой.

Это не выглядит великолепно, и я бы хотел добавить немного больше пространства между базовой линией входных и клавиш. Направка к вводу, но это не работает. Он по -прежнему выравнивает базовую линию текста с верхней частью клавиатуры, а прокладка остается на основе клавиатуры. На iOS проблема сохраняется.val imeBottomDp = with(density) { WindowInsets.ime.getBottom(this).toDp() }
val extraGap = if (imeBottomDp > 0.dp) 32.dp else 0.dp

Surface(
modifier = Modifier
.padding(bottom = extraGap),
tonalElevation = 2.dp,
shadowElevation = 1.dp,
color = MaterialTheme.colorScheme.surface
) {

BasicTextField(
value = textState,
onValueChange = { textState = it },
enabled = enabled,
modifier = Modifier
.background(Color.Green)
.padding(vertical = 52.dp, horizontal = 8.dp),
keyboardOptions = KeyboardOptions(
keyboardType = KeyboardType.Text,
imeAction = ImeAction.Send,
),
...
< /code>
Есть идеи? Это должно быть возможно без этих обходных путей? Кажется довольно распространенным, если не ожидалось, оставить некоторое пространство между базовой линией и верхней частью клавиатуры?Surface(
modifier = Modifier
.imePadding()
.padding(bottom = 0.dp),
tonalElevation = 2.dp,
shadowElevation = 1.dp,
color = MaterialTheme.colorScheme.surface
)
< /code>
Но это добавляет много пространства (200.dp+) между входом и верхней частью клавиатуры. < /p>

Редактировать 2: < /p>
Я попробовал эту комбинацию: < /p>
val extraGap = if (isAndroid && imeBottomDp > 0.dp) 32.dp else 0.dp

val modifier = if (isIos) Modifier.imePadding() else Modifier

Surface(
modifier = modifier.padding(bottom = extraGap)
...
< /code>
Казалось, изначально работал, но теперь я вижу большой разрыв между вводом и клавиатурой на iOS. Не уверен, что случилось.

Подробнее здесь: https://stackoverflow.com/questions/797 ... f-keyboard
Ответить

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

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

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

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

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