Навыки работы с Android
Посмотреть на GitHubJetpack Navigation 3
android skills add navigation-3Navigation 3 – это библиотека навигации, предназначенная для работы с Compose. С Navigation 3 вы полностью контролируете обратный стек и перемещаетесь между пунктами назначения, добавляя и удаляя элементы из списка. Он создает гибкую систему навигации по приложению, предоставляя:
- Соглашения для моделирования обратного стека, где каждая запись в обратном стеке представляет контент, к которому перешел пользователь.
- Интерфейс, который автоматически обновляется при изменении обратного стека (включая анимацию).
- Область действия для элементов в обратном стеке, позволяющая сохранять состояние, пока элемент находится в обратном стеке.
- Адаптивная система макетов, которая позволяет одновременно отображать несколько целевых объектов, обеспечивая плавное переключение между этими макетами.
- Механизм, позволяющий контенту взаимодействовать с родительским макетом (метаданные).
- Как настроить обмен данными между пунктами назначения, чтобы возвращать результаты между экранами
В общих чертах реализация Navigation 3 выглядит следующим образом:
- Определите контент, к которому пользователи могут переходить в вашем приложении, присвойте каждому элементу уникальный ключ и добавьте функцию, которая будет сопоставлять ключ с контентом. Подробнее о сопоставлении ключей с контентом…
- Создайте обратный стек, в который будут добавляться и из которого будут удаляться ключи по мере того, как пользователи перемещаются по приложению. Подробнее о том, как создать обратный стек…
- Используйте
NavDisplay, чтобы показать обратный стек приложения. При каждом изменении обратного стека интерфейс обновляется, чтобы отобразить соответствующий контент. Подробнее о том, как показать обратный стек… - Измените стратегии сцены
NavDisplay, чтобы поддерживать адаптивные макеты и разные платформы. - Поддерживайте ссылки на контент, чтобы пользователи могли сразу переходить к нужным разделам.
Полный исходный код Navigation 3 доступен в AOSP.
Улучшения Jetpack Navigation
Navigation 3 улучшает исходный Jetpack Navigation API следующим образом:
- Упрощает интеграцию с Compose.
- Полный контроль над обратным стеком.
- Позволяет создавать макеты, которые могут одновременно считывать несколько пунктов назначения из обратного стека, что позволяет им адаптироваться к изменениям размера окна и другим входным данным.
Подробнее о принципах Navigation 3 и выборе дизайна API читайте в записи блога.
Образцы кода
В репозитории рецептов содержатся примеры того, как использовать строительные блоки Navigation 3 для решения распространенных проблем с навигацией.