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

Функция ModalDrawerSheet

Функция ModalDrawerSheet рисует лист внутри ModalNavigationDrawer. Задаёт ширину, цвет и форму панели. Пункты меню кладут в лямбду content, чаще всего NavigationDrawerItem.

Синтаксис

ModalDrawerSheet { NavigationDrawerItem( label = { Text("abcde") }, selected = true, onClick = { }, icon = { }, ) }

Параметры

Параметр Описание
drawerShape Форма края панели. Принимает значение интерфейса Shape.
drawerContainerColor Цвет фона листа. Принимает значение класса Color.
content Лямбда с пунктами и заголовком меню.

Пример

Давайте положим один пункт в лист 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 @OptIn(ExperimentalMaterial3Api::class) class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val drawerState = rememberDrawerState(DrawerValue.Open) ModalNavigationDrawer( drawerState = drawerState, drawerContent = { ModalDrawerSheet { NavigationDrawerItem( label = { Text("abcde") }, selected = true, onClick = { }, icon = { Icon( imageVector = Icons.Filled.Home, contentDescription = "abcde", ) }, ) } }, ) { Text(text = "12345") } } } }

На экране слева будет лист с пунктом "abcde", основной текст останется справа под затемнением.

Пример

Давайте зададим свой цвет фона листа:

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.ModalDrawerSheet import androidx.compose.material3.ModalNavigationDrawer import androidx.compose.material3.NavigationDrawerItem import androidx.compose.material3.Text import androidx.compose.material3.rememberDrawerState import androidx.compose.ui.graphics.Color @OptIn(ExperimentalMaterial3Api::class) class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val drawerState = rememberDrawerState(DrawerValue.Open) ModalNavigationDrawer( drawerState = drawerState, drawerContent = { ModalDrawerSheet( drawerContainerColor = Color(0xFFE8EAF6), ) { NavigationDrawerItem( label = { Text("12345") }, selected = true, onClick = { }, icon = { }, ) } }, ) { Text(text = "abcde") } } } }

На экране фон бокового листа станет светло-фиолетовым.

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

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