From f1411452454b2d3eab3f2a31c46210f3d8065ced Mon Sep 17 00:00:00 2001 From: k1ngsterr1 Date: Sun, 18 Jan 2026 21:31:37 +0500 Subject: [PATCH] feat: Implement keyboard dismissal on ChatsListScreen to enhance user experience --- .../messenger/ui/chats/ChatsListScreen.kt | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt index 7785dc7..11a2ac3 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt @@ -152,13 +152,27 @@ fun ChatsListScreen( val view = androidx.compose.ui.platform.LocalView.current val context = androidx.compose.ui.platform.LocalContext.current + val focusManager = androidx.compose.ui.platform.LocalFocusManager.current val drawerState = rememberDrawerState(initialValue = DrawerValue.Closed) val scope = rememberCoroutineScope() // 🔥 ВСЕГДА закрываем клавиатуру при появлении ChatsListScreen - LaunchedEffect(Unit) { + // Используем DisposableEffect чтобы срабатывало при каждом появлении экрана + DisposableEffect(Unit) { + // Закрываем клавиатуру сразу val imm = context.getSystemService(android.content.Context.INPUT_METHOD_SERVICE) as android.view.inputmethod.InputMethodManager imm.hideSoftInputFromWindow(view.windowToken, 0) + focusManager.clearFocus() + + onDispose { } + } + + // Дополнительно закрываем клавиатуру с небольшой задержкой (на случай если она появляется после) + LaunchedEffect(Unit) { + kotlinx.coroutines.delay(100) + val imm = context.getSystemService(android.content.Context.INPUT_METHOD_SERVICE) as android.view.inputmethod.InputMethodManager + imm.hideSoftInputFromWindow(view.windowToken, 0) + focusManager.clearFocus() } // Update status bar and completely hide navigation bar