Навигация 3

Navigation 3 — это новая библиотека навигации, разработанная для работы с Compose. С Navigation 3 вы получаете полный контроль над стеком возврата, а навигация к пунктам назначения и обратно так же проста, как добавление и удаление элементов из списка. Она создает гибкую систему навигации приложения, предоставляя:

  • Условные обозначения для моделирования стека возврата, где каждая запись в стеке возврата представляет собой контент, к которому пользователь перешел.
  • Пользовательский интерфейс, который автоматически обновляется при изменении элементов в стеке возврата (включая анимацию).
  • Область видимости для элементов в стеке возврата, позволяющая сохранять состояние, пока элемент находится в стеке возврата.
  • Адаптивная система компоновки, позволяющая отображать несколько элементов одновременно и обеспечивающая плавное переключение между ними.
  • Механизм взаимодействия контента с родительским макетом (метаданными).

В общих чертах, навигацию 3 можно реализовать следующими способами:

  1. Определите контент, к которому пользователи могут перейти в вашем приложении, присвоив каждому элементу уникальный ключ, и добавьте функцию для сопоставления этого ключа с контентом. См. раздел «Сопоставление ключей с контентом» .
  2. Создайте стек возврата, в который будут добавляться и удаляться клавиши по мере перемещения пользователей по приложению. См. раздел «Создание стека возврата» .
  3. Используйте NavDisplay для отображения стека возврата вашего приложения. При каждом изменении содержимого стека возврата пользовательский интерфейс обновляется, отображая соответствующий контент. См. раздел «Отображение стека возврата» .
  4. При необходимости измените стратегии отображения сцен NavDisplay для поддержки адаптивных макетов и различных платформ.

Полный исходный код Navigation 3 можно посмотреть на AOSP.

Улучшения в навигации с помощью реактивного ранца.

В Navigation 3 реализованы следующие улучшения по сравнению с оригинальным API навигации Jetpack:

  • Обеспечивает более простую интеграцию с Compose.
  • Предоставляет полный контроль над стеком резервных файлов.
  • Это позволяет создавать макеты, способные одновременно считывать данные из стека возврата, что дает возможность адаптироваться к изменениям размера окна и другим входным данным.

Подробнее о принципах работы Navigation 3 и особенностях проектирования API читайте в этой статье блога .

Примеры кода

В репозитории рецептов содержатся примеры использования компонентов Navigation 3 для решения распространенных задач навигации.