Я пробовал все виды вставок, оконных вставок, потребляющих вставок (потому что я даже не совсем понимаю оконные вставки)... ничего не работает. Я пытался найти это, но у всех есть прямо противоположная проблема: они хотят, чтобы их нижняя панель приложений поднималась вверх с помощью клавиатуры; Я не хочу, я хочу, чтобы он оставался внизу, а клавиатура располагалась поверх него, Я ХОЧУ, чтобы клавиатура закрывала нижнюю панель приложений.
Недавно я добавил панель поиска на главном экране (настраиваемое текстовое поле, а не верхняя панель виджета создания поиска), и когда я нажимаю на нее, нижняя панель приложения поднимается вверх при появлении клавиатуры.
Для справки: компилируемый и целевой SDK — 34, минимум 26; все зависимости являются последними (стабильными выпусками) на сегодняшний день. От края до края НЕ включено, я не добавлял никаких кодов «безопасного рисования» или вставок к основному действию любого рода, а также не добавлял никаких кодировок WindowCompat.
Вот соответствующий код (за вычетом моих 500 различных попыток закрепить объект в нижней части экрана):
MainActivity (установить блок контента):
setContent {
val application = (application as CellarApplication)
CompositionLocalProvider(LocalCellarApplication provides application) {
TobaccoCellarTheme(preferencesRepo = application.preferencesRepo) {
Surface(
modifier = Modifier
.fillMaxSize(),
color = MaterialTheme.colorScheme.background,
) {
CellarApp()
}
}
}
}
Экран HomeScreen:
Scaffold(
modifier = modifier
.nestedScroll(scrollBehavior.nestedScrollConnection),
topBar = {
CellarTopAppBar(
title = stringResource(HomeDestination.titleRes),
scrollBehavior = scrollBehavior,
canNavigateBack = false,
navigateToCsvImport = navigateToCsvImport,
navigateToSettings = navigateToSettings,
showMenu = true,
exportCsvHandler = viewmodel,
)
},
bottomBar = {
CellarBottomAppBar(
modifier = Modifier,
navigateToStats = navigateToStats,
navigateToAddEntry = navigateToAddEntry,
currentDestination = HomeDestination,
filterViewModel = filterViewModel,
)
},
snackbarHost = {
SnackbarHost(
hostState = snackbarHostState,
modifier = Modifier
.padding(0.dp)
snackbar = { Snackbar(it) }
)
},
) { innerPadding ->
Column (
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Top,
modifier = Modifier
.fillMaxSize()
.padding(top = 64.dp, bottom = 52.dp, start = 0.dp, end = 0.dp)
) {
// rest of code calling screen content top level composables
Компонуемая нижняя панель приложения (определена в другом файле, где определены верхняя панель приложения и компонуемый контейнер приложения):
@Composable
fun CellarBottomAppBar(
currentDestination: NavigationDestination?,
modifier: Modifier = Modifier,
navigateToHome: () -> Unit = {},
navigateToStats: () -> Unit = {},
navigateToAddEntry: () -> Unit = {},
filterViewModel: FilterViewModel,
) {
BottomAppBar(
modifier = modifier
.fillMaxWidth()
.height(52.dp)
.padding(0.dp),
containerColor = primaryLight,
contentColor = LocalCustomColors.current.navIcon,
contentPadding = PaddingValues(0.dp),
) {
Row(
// rest of the bottom app bar code
Подробнее здесь: https://stackoverflow.com/questions/790 ... mappbar-up
Как запретить программной клавиатуре поднимать пользовательский BottomAppBar? ⇐ Android
Форум для тех, кто программирует под Android
1727340925
Anonymous
Я пробовал все виды вставок, оконных вставок, потребляющих вставок (потому что я даже не совсем понимаю оконные вставки)... ничего не работает. Я пытался найти это, но у всех есть прямо противоположная проблема: они хотят, чтобы их нижняя панель приложений поднималась вверх с помощью клавиатуры; Я не хочу, я хочу, чтобы он оставался внизу, а клавиатура располагалась поверх него, Я ХОЧУ, чтобы клавиатура закрывала нижнюю панель приложений.
Недавно я добавил панель поиска на главном экране (настраиваемое текстовое поле, а не верхняя панель виджета создания поиска), и когда я нажимаю на нее, нижняя панель приложения поднимается вверх при появлении клавиатуры.
Для справки: компилируемый и целевой SDK — 34, минимум 26; все зависимости являются последними (стабильными выпусками) на сегодняшний день. От края до края [b]НЕ[/b] включено, я не добавлял никаких кодов «безопасного рисования» или вставок к основному действию любого рода, а также не добавлял никаких кодировок WindowCompat.
Вот соответствующий код (за вычетом моих 500 различных попыток закрепить объект в нижней части экрана):
[b]MainActivity (установить блок контента):
setContent {
val application = (application as CellarApplication)
CompositionLocalProvider(LocalCellarApplication provides application) {
TobaccoCellarTheme(preferencesRepo = application.preferencesRepo) {
Surface(
modifier = Modifier
.fillMaxSize(),
color = MaterialTheme.colorScheme.background,
) {
CellarApp()
}
}
}
}
Экран HomeScreen:[/b]
Scaffold(
modifier = modifier
.nestedScroll(scrollBehavior.nestedScrollConnection),
topBar = {
CellarTopAppBar(
title = stringResource(HomeDestination.titleRes),
scrollBehavior = scrollBehavior,
canNavigateBack = false,
navigateToCsvImport = navigateToCsvImport,
navigateToSettings = navigateToSettings,
showMenu = true,
exportCsvHandler = viewmodel,
)
},
bottomBar = {
CellarBottomAppBar(
modifier = Modifier,
navigateToStats = navigateToStats,
navigateToAddEntry = navigateToAddEntry,
currentDestination = HomeDestination,
filterViewModel = filterViewModel,
)
},
snackbarHost = {
SnackbarHost(
hostState = snackbarHostState,
modifier = Modifier
.padding(0.dp)
snackbar = { Snackbar(it) }
)
},
) { innerPadding ->
Column (
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Top,
modifier = Modifier
.fillMaxSize()
.padding(top = 64.dp, bottom = 52.dp, start = 0.dp, end = 0.dp)
) {
// rest of code calling screen content top level composables
[b]Компонуемая нижняя панель приложения[/b] (определена в другом файле, где определены верхняя панель приложения и компонуемый контейнер приложения):
@Composable
fun CellarBottomAppBar(
currentDestination: NavigationDestination?,
modifier: Modifier = Modifier,
navigateToHome: () -> Unit = {},
navigateToStats: () -> Unit = {},
navigateToAddEntry: () -> Unit = {},
filterViewModel: FilterViewModel,
) {
BottomAppBar(
modifier = modifier
.fillMaxWidth()
.height(52.dp)
.padding(0.dp),
containerColor = primaryLight,
contentColor = LocalCustomColors.current.navIcon,
contentPadding = PaddingValues(0.dp),
) {
Row(
// rest of the bottom app bar code
Подробнее здесь: [url]https://stackoverflow.com/questions/79026304/how-to-prevent-soft-keyboard-from-pushing-custom-bottomappbar-up[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия