Эквивалент Android TaskStackBuilder в go_router флаттераAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Эквивалент Android TaskStackBuilder в go_router флаттера

Сообщение Anonymous »

Я хочу имитировать TaskStackBuilder из родного Android (вот так), используя go_router во флаттере.
По сути, я хочу, чтобы когда пользователь получил доступ к глубокой ссылке из маршрута, он перешел на этот экран, имея правильный задний стек. Предположим, мой маршрут выглядит следующим образом:

Код: Выделить всё

GoRouter(
routes: [
GoRoute(
path: "/",
name: AppRouteName.home
builder: (context, routerState) {
return const HomeScreen();
},
),
GoRoute(
path: "/promo",
name: AppRouteName.promo
builder: (context, routerState) {
return const ListPromoScreen();
},
routes: [
GoRoute(
path: ":id,
name: AppRouteName.promoDetail
builder: (context, routerState) {
return const PromoDetailScreen(routerState.id);
}
),
]
),
GoRoute(
path: "/invoice",
name: AppRouteName.invoice,
builder: (context, routerState) {
return ListInvoicesScreen();
},
),
GoRoute(
path: "/changePassword",
name: AppRouteName.changePassword,
builder: (context, routerState) {
return const ChangePasswordScreen();
},
),
]
)
Я обнаружил, что обратного стека можно достичь за счет вложенных маршрутов, как показано ListPromoScreen и PromoScreenDetail. Но это даст пользователю обратный стек только до ListPromoScreen (когда глубокая ссылка выглядит как packageName://app/promo:id), в то время как я хочу, чтобы у пользователя был обратный стек до HomeScreen .
Я думаю, что если мы будем использовать подмаршруты/вложенный маршрут из go_router, дерево маршрутизатора будет слишком глубоким, поскольку у меня есть последовательный поток, который может состоять из 4 последовательно подключенный экран/активность. Я не думаю, что вложенные маршруты подходят для этого случая.
Есть предложения?

Подробнее здесь: https://stackoverflow.com/questions/798 ... -go-router
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»