Перейти к основному содержимому

Обзор

Навигация в FlutterFlow — это важный аспект разработки приложений, который позволяет пользователям перемещаться между разными страницами или экранами. Это достигается с помощью системы маршрутизации, в которой каждой странице присваивается уникальный идентификатор маршрута. Понимание того, как работает навигация и что происходит со стеком навигации под капотом, поможет вам создать плавный пользовательский опыт.

Что такое маршруты?

Маршруты — это по сути пути, которые определяют разные экраны или страницы в приложении. Каждый маршрут связан с конкретным экраном и имеет уникальный идентификатор, который позволяет приложению распознавать его и переходить к нему. Например, маршрут может указывать на домашний экран, страницу с деталями продукта или страницу профиля пользователя.

СтраницаМаршрут
Главная/home
Детали продукта/product-details
Корзина/cart

Логика стека навигации

Стек навигации — это структура данных, которая отслеживает маршруты по мере их добавления и удаления из стека. Он следует принципу Last In, First Out (LIFO), то есть последний экран, к которому произошел переход, будет первым удален при нажатии пользователем кнопки «Назад».

Вот как работает логика стека навигации в FlutterFlow:

1. Добавление маршрута

При переходе к новому экрану этот маршрут добавляется на вершину стека.

Например, если вы находитесь на домашнем экране и переходите к экрану профиля, маршрут экрана профиля добавляется в стек.

pushroute.avif

2. Удаление маршрута

При возврате назад верхний маршрут удаляется из стека, и предыдущий экран становится видимым.

Например, если вы находитесь на экране профиля и нажимаете кнопку «Назад», маршрут экрана профиля удаляется, и отображается домашний экран.

poproute.avif

3. Замена маршрута

Иногда может потребоваться заменить текущий маршрут на новый без добавления в стек. Это полезно для действий вроде входа в систему, когда вы не хотите, чтобы пользователи могли вернуться на экран входа после успешной авторизации.

Например, после успешного входа замените маршрут экрана входа на маршрут домашнего экрана.

replaceroute.avif

Действия навигации

В FlutterFlow есть три основных действия навигации, которые вы можете использовать для переходов между разными экранами в приложении. Вот они:

  1. Перейти к (Добавить маршрут)
  2. Вернуться назад (Удалить маршрут)
  3. Заменить маршрут

1. Перейти к (Добавить маршрут)

Это действие подразумевает переход к новому экрану путем добавления нового маршрута в стек навигации.

Что происходит под капотом:

  • При добавлении маршрута новый экран размещается поверх текущего стека. Это означает, что предыдущий экран остается в стеке, но не виден пользователю.
  • Новый экран становится активным, с которым взаимодействует пользователь.
к сведению

Подробнее о добавлении этого действия см. в руководстве по навигации по страницам.

2. Вернуться назад (Удалить маршрут)

Это действие подразумевает возврат к предыдущему экрану путем удаления текущего маршрута из стека навигации.

Что происходит под капотом:

  • При удалении маршрута текущий экран удаляется из стека, и предыдущий экран снова становится активным.
  • Это действие фактически отменяет последнее добавление.
к сведению

Подробнее о добавлении этого действия см. в руководстве по навигации по страницам.

3. Заменить маршрут

Это действие подразумевает замену текущего маршрута на новый. В отличие от добавления маршрута, замена не увеличивает стек, а просто меняет текущий маршрут на новый.

Что происходит под капотом:

  • Текущий экран удаляется из стека, и новый экран добавляется на его место.
к сведению
  • Это полезно, когда вы хотите запретить пользователю возвращаться к предыдущему экрану.
  • Это действие по сути является действием Перейти к с включенной опцией Заменить маршрут. Подробнее о добавлении этого действия см. в руководстве по навигации по страницам.