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