Компонент панели навигации — это выдвижное меню, которое позволяет пользователям переходить к различным разделам вашего приложения. Пользователи могут активировать его, проведя пальцем сбоку или коснувшись значка меню.
Рассмотрим эти три варианта использования панели навигации:
- Организация контента: дайте пользователям возможность переключаться между различными категориями, например, в новостях или приложениях для ведения блогов.
- Управление учетной записью: предоставление быстрых ссылок на настройки учетной записи и разделы профиля в приложениях с учетными записями пользователей.
- Обнаружение функций. Организуйте несколько функций и настроек в одном меню, чтобы облегчить пользователям обнаружение и доступ к сложным приложениям.
В Material Design существует два типа навигационных ящиков:
- Стандартный: разделяет пространство на экране с другим содержимым.
- Модальное: появляется поверх другого контента на экране.
Совместимость версий
Для этой реализации требуется, чтобы для minSDK вашего проекта был установлен уровень API 21 или выше.
Зависимости
Реализация навигационного ящика
Вы можете использовать компонуемый ModalNavigationDrawer
для реализации навигационного ящика:
Ключевые моменты
Используйте слот
drawerContent
, чтобы предоставитьModalDrawerSheet
и предоставить содержимое ящика.ModalNavigationDrawer
принимает ряд дополнительных параметров ящика. Например, вы можете переключить, будет ли ящик реагировать на перетаскивание с помощьюgesturesEnabled
, как показано в следующем примере:
Управление поведением панели навигации
Чтобы контролировать, как ящик открывается и закрывается, используйте DrawerState
:
Ключевые моменты
- Передайте
DrawerState
вModalNavigationDrawer
используя параметрdrawerState
. -
DrawerState
предоставляет доступ к функциямopen
иclose
, а также свойствам, связанным с текущим состоянием ящика. Для этих приостанавливающих функций требуетсяCoroutineScope
, экземпляр которого можно создать с помощьюrememberCoroutineScope
. Вы также можете вызывать функции приостановки в ответ на события пользовательского интерфейса.
Результаты
Коллекции, содержащие это руководство
Это руководство является частью тщательно подобранной коллекции быстрых руководств, охватывающих более широкие цели разработки Android:
![](https://developer.android.com/static/images/quick-guides/collection-illustration.png?hl=ru)