From 9e5e81d5e5204d0032836f8bf3d50f20e1ea149d Mon Sep 17 00:00:00 2001 From: k1ngsterr1 Date: Wed, 4 Mar 2026 15:43:07 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D0=BF=D1=80=D1=8B?= =?UTF-8?q?=D0=B3=D0=B0=D1=8E=D1=89=D0=B5=D0=B9=20=D0=B3=D0=B0=D0=BB=D0=BE?= =?UTF-8?q?=D1=87=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../messenger/ui/chats/GroupSetupScreen.kt | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/rosetta/messenger/ui/chats/GroupSetupScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/chats/GroupSetupScreen.kt index a9db9bd..02fc3fd 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/chats/GroupSetupScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/chats/GroupSetupScreen.kt @@ -741,21 +741,14 @@ fun GroupSetupScreen( contentColor = Color.White, shape = CircleShape, modifier = run { - var lastStableFabBottom by remember { mutableStateOf(18.dp) } - val rawBottom = if (imeBottomDp > 0.dp) { - imeBottomDp + 14.dp - } else if (coordinator.isEmojiBoxVisible && coordinator.emojiHeight > 0.dp) { - coordinator.emojiHeight + 14.dp - } else { - 18.dp - } - // During keyboard switch, keep FAB at last stable position - if (!coordinator.isTransitioning) { - lastStableFabBottom = rawBottom - } + // Берём максимум из всех позиций — при переключении keyboard↔emoji + // одна уходит вниз, другая уже на месте, FAB не прыгает. + val keyboardBottom = if (imeBottomDp > 0.dp) imeBottomDp + 14.dp else 0.dp + val emojiBottom = if (coordinator.isEmojiBoxVisible && coordinator.emojiHeight > 0.dp) coordinator.emojiHeight + 14.dp else 0.dp + val fabBottom = maxOf(keyboardBottom, emojiBottom, 18.dp) Modifier .align(Alignment.BottomEnd) - .padding(end = 16.dp, bottom = lastStableFabBottom) + .padding(end = 16.dp, bottom = fabBottom) .size(58.dp) } ) {