Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
124 of 502 menu
◀ ▶

Метод close

Метод close класса DrawerState убирает боковое меню с экрана. Метод suspend, его вызывают внутри корутины через rememberCoroutineScope или LaunchedEffect. Часто вызывают в onClick у NavigationDrawerItem после выбора раздела.

Синтаксис

drawerState.close()

Пример

Давайте закроем drawer по нажатию на пункт меню:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Home import androidx.compose.material3.DrawerValue import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.ModalDrawerSheet import androidx.compose.material3.ModalNavigationDrawer import androidx.compose.material3.NavigationDrawerItem import androidx.compose.material3.Text import androidx.compose.material3.rememberDrawerState import androidx.compose.runtime.rememberCoroutineScope import kotlinx.coroutines.launch @OptIn(ExperimentalMaterial3Api::class) class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val drawerState = rememberDrawerState(DrawerValue.Open) val scope = rememberCoroutineScope() ModalNavigationDrawer( drawerState = drawerState, drawerContent = { ModalDrawerSheet { NavigationDrawerItem( label = { Text("abcde") }, selected = true, onClick = { scope.launch { drawerState.close() } }, icon = { Icon( imageVector = Icons.Filled.Home, contentDescription = "abcde", ) }, ) } }, ) { Text(text = "12345") } } } }

На экране после нажатия на пункт "abcde" панель уедет и останется текст "12345".

Пример

Давайте закроем открытую панель из LaunchedEffect:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.DrawerValue import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ModalNavigationDrawer import androidx.compose.material3.Text import androidx.compose.material3.rememberDrawerState import androidx.compose.runtime.LaunchedEffect import kotlinx.coroutines.delay @OptIn(ExperimentalMaterial3Api::class) class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val drawerState = rememberDrawerState(DrawerValue.Open) LaunchedEffect(Unit) { delay(2000) drawerState.close() } ModalNavigationDrawer( drawerState = drawerState, drawerContent = { Text(text = "abcde") }, ) { Text(text = "12345") } } } }

На экране через две секунды панель сама закроется после вызова close в LaunchedEffect.

Смотрите также

  • метод open,
    который открывает панель
  • класс DrawerState,
    которым управляют drawer-ы
  • функция NavigationDrawerItem,
    в onClick которой часто вызывают close
  • функция ModalNavigationDrawer,
    которая показывает и прячет меню
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить