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

Функция rememberDrawerState

Функция rememberDrawerState возвращает DrawerState и хранит его между перерисовками. Начальное положение задают через initialValue из перечисления DrawerValue. Полученный объект передают в drawerState у ModalNavigationDrawer и DismissibleNavigationDrawer.

Синтаксис

val drawerState = rememberDrawerState(DrawerValue.Closed)

Параметры

Параметр Описание
initialValue DrawerValue.Closed или DrawerValue.Open при первом показе экрана.
confirmStateChange Лямбда, которая решает, можно ли перейти в новое состояние панели.

Пример

Давайте создадим drawer в закрытом состоянии:

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 @OptIn(ExperimentalMaterial3Api::class) class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val drawerState = rememberDrawerState(DrawerValue.Closed) ModalNavigationDrawer( drawerState = drawerState, drawerContent = { Text(text = "abcde") }, ) { Text(text = "12345") } } } }

На экране сначала будет виден только текст "12345", меню скрыто.

Пример

Давайте откроем панель через метод open в корутине:

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 @OptIn(ExperimentalMaterial3Api::class) class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val drawerState = rememberDrawerState(DrawerValue.Closed) LaunchedEffect(Unit) { drawerState.open() } ModalNavigationDrawer( drawerState = drawerState, drawerContent = { Text(text = "abcde") }, ) { Text(text = "12345") } } } }

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

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

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