ImePadding в ModalBottomSheet в Compose на уровне API 29 и нижеAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 ImePadding в ModalBottomSheet в Compose на уровне API 29 и ниже

Сообщение Anonymous »

У меня есть следующий код:

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

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun FilterScreen(
component: SearchComponent,
onDismiss: () -> Unit
) {
val sheetState = rememberModalBottomSheetState(
skipPartiallyExpanded = true
)

val countriesIS = remember { MutableInteractionSource() }
val filterState by component.filterState.collectAsState()

var showBottomSheet by remember { mutableStateOf(false) }

ModalBottomSheet(
onDismissRequest = {
showBottomSheet = false
onDismiss()
},
sheetState = sheetState,
shape = RoundedCornerShape(topEnd = 50.dp, topStart = 50.dp),
containerColor = Color.White
) {
Column(
modifier = Modifier
.fillMaxHeight()
.imePadding()
.verticalScroll(rememberScrollState()),
) {
AutocompleteTextEdit(
labelText = Strings.getString("citizenship"),
interactionSource = countriesIS,
text = filterState.countriesString,
items = component.countries,
onValueChange = { newText -> component.onEvent(SearchEvents.UpdateCountries(newText)) },
)
Spacer(Modifier.requiredHeight(12.dp))
Row {
DefaultButton(
modifier = Modifier
.weight(1f)
.requiredHeight(mainButtonHeight)
.padding(start = mainSideMargin, end = halfMainSideMargin),
text = Strings.getString("clear"),
isFilled = false,
) {
component.onEvent(SearchEvents.ClearFilter)
}
DefaultButton(
modifier = Modifier
.weight(1f)
.requiredHeight(mainButtonHeight)
.padding(start = 8.dp, end = mainSideMargin),
text = Strings.getString("search"),
) {
component.onEvent(SearchEvents.ApplyFilter)
}
}
Spacer(Modifier
.requiredHeight(250.dp)
)
}
}
}
Я включил возможность автозаполнения в код, но на самом деле у меня много таких полей автозаполнения, поэтому диалоговое окно нижнего листа занимает больше, чем полноэкранный режим.
У меня проблема с определением отступов времени в Compose на платформах с SDK29 или более ранней версией в ModalBottomSheet.
У меня много таких полей автозаполнения, поэтому диалоговое окно нижнего листа занимает полноэкранный режим.
В SDK выше 29 проблем нет. Когда появляется клавиатура, мое диалоговое окно можно прокручивать, поэтому я могу видеть его полностью.
Но на платформах ниже 29 клавиатура закрывает нижнюю часть листа.
Тем не менее, на 29 — перекомпоновки не происходит.Я добавил корректировкуResize в действие в манифесте. И это помогает на обычных экранах, но не в ModalBottomSheet.
Кроме того, я сделал несколько точек останова в коде, а на платформах 30+ рекомпозиция происходит при отображении/скрытии клавиатуры.

Подробнее здесь: https://stackoverflow.com/questions/786 ... -and-lower
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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