feat: Apply imePadding to bottom bar for improved keyboard interaction
This commit is contained in:
@@ -892,6 +892,8 @@ fun ChatDetailScreen(
|
|||||||
containerColor = backgroundColor, // Фон всего чата
|
containerColor = backgroundColor, // Фон всего чата
|
||||||
// 🔥 Bottom bar - инпут с imePadding автоматически поднимается над клавиатурой
|
// 🔥 Bottom bar - инпут с imePadding автоматически поднимается над клавиатурой
|
||||||
bottomBar = {
|
bottomBar = {
|
||||||
|
// 🔥 Весь bottomBar поднимается над клавиатурой
|
||||||
|
Column(modifier = Modifier.imePadding()) {
|
||||||
// 🔥 FLOATING INPUT BAR - плавает поверх сообщений, поднимается с клавиатурой
|
// 🔥 FLOATING INPUT BAR - плавает поверх сообщений, поднимается с клавиатурой
|
||||||
// Скрываем когда в режиме выбора
|
// Скрываем когда в режиме выбора
|
||||||
AnimatedVisibility(
|
AnimatedVisibility(
|
||||||
@@ -1049,15 +1051,15 @@ fun ChatDetailScreen(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} // Закрытие Column с imePadding
|
||||||
}
|
}
|
||||||
) { paddingValues ->
|
) { paddingValues ->
|
||||||
// 🔥 Column структура - список сжимается когда клавиатура открывается
|
// 🔥 Column структура - список сжимается когда клавиатура открывается
|
||||||
// Emoji panel внутри MessageInputBar - НЕ нужен дополнительный отступ
|
// imePadding применён к bottomBar, поэтому контент автоматически сжимается
|
||||||
Column(
|
Column(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxSize()
|
.fillMaxSize()
|
||||||
.padding(top = paddingValues.calculateTopPadding())
|
.padding(paddingValues) // 🔥 Учитываем top и bottom padding от Scaffold
|
||||||
// 🔥 imePadding убран - он в MessageInputBar, чтобы инпут поднимался над клавиатурой
|
|
||||||
.background(backgroundColor)
|
.background(backgroundColor)
|
||||||
) {
|
) {
|
||||||
// Список сообщений - занимает всё доступное место
|
// Список сообщений - занимает всё доступное место
|
||||||
@@ -2089,7 +2091,7 @@ private fun MessageInputBar(
|
|||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.graphicsLayer { clip = false }
|
.graphicsLayer { clip = false }
|
||||||
.imePadding() // 🔥 Поднимаем инпут над клавиатурой
|
// imePadding уже применён к родительскому контейнеру
|
||||||
) {
|
) {
|
||||||
// Если пользователь заблокирован - показываем BlockedChatFooter (плоский как инпут)
|
// Если пользователь заблокирован - показываем BlockedChatFooter (плоский как инпут)
|
||||||
if (isBlocked) {
|
if (isBlocked) {
|
||||||
|
|||||||
Reference in New Issue
Block a user