Как устроена навигация
Переходы между экранами во FlutterFlow построены на маршрутизации: у каждой страницы есть свой маршрут. Понимание того, что при переходе происходит со стеком навигации, избавляет от большинства странностей вроде «кнопка назад ведёт не туда».
Маршруты
Маршрут — это адрес экрана внутри приложения. По нему приложение понимает, какую страницу показать.
| Страница | Маршрут |
|---|---|
| Главная | /home |
| Карточка товара | /product-details |
| Корзина | /cart |
Стек навигации
Стек навигации хранит маршруты в порядке их открытия и работает по принципу «последним пришёл — первым ушёл». Поэтому кнопка «назад» возвращает именно на тот экран, с которого пришли.
Три операции описывают всё, что с ним бывает.
1. Добавление маршрута
При переходе на новый экран его маршрут кладётся на вершину стека.
Например, с главной перешли в профиль — маршрут профиля лёг сверху.

2. Снятие маршрута
При возврате верхний маршрут снимается, и снова виден предыдущий экран.
Например, с профиля нажали «назад» — маршрут профиля снят, под ним главная.

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

Действия навигации
Им соответствуют три действия:
1. Navigate To
Открывает новый экран, добавляя маршрут в стек.
Что происходит:
- новый экран ложится поверх текущего; предыдущий остаётся в стеке, но не виден;
- пользователь работает с новым экраном.
Как добавить это действие — в руководстве по переходам между страницами.
2. Navigate Back
Возвращает на предыдущий экран, снимая текущий маршрут со стека.
Что происходит:
- текущий экран убирается из стека, активным снова становится предыдущий;
- по сути это отмена последнего перехода.
Как добавить это действие — в руководстве по переходам между страницами.
3. Replace Route
Заменяет текущий маршрут новым: стек не растёт, верхний элемент просто подменяется.
Что происходит:
- текущий экран убирается из стека, а на его место встаёт новый.
- Нужно там, где возвращаться назад пользователь не должен.
- Отдельного действия нет: это то же Navigate To с включённой настройкой Replace Route. Подробности — в руководстве по переходам между страницами.