如果用户点击返回从主页,他应该去产品详细信息页面。当我使用Get.tonamed(Routes.Home)时,Getx正在创建一个新的homepage示例。如果我删除堆栈中的页面并返回主页,我无法将用户带到详细信息页面,因为用户按了后退按钮。我想在用户单击“后退”按钮时将其带到详细信息页面。
xwmevbvl1#
您需要从Navigation stack弹出/返回屏幕到主页,而不是在导航堆栈中再次添加它。在您当前的代码中,您再次从产品详细信息页面在导航堆栈中添加主页。因此,你需要使用offAll或offNamedUntil避免主页的新示例,你需要弹出/返回屏幕,直到主屏幕。避免它将从导航堆栈中删除所有以前的页面。
Navigation stack
offAll
offNamedUntil
Get.offAll(Home()); // OR. // Get.offNamedUntil('home', (route) => false); // RouteName
有关详细信息,请查看此link官方软件包检查自述文件Route management链接
Route management
2lpgd9682#
点击产品详细信息页面,请按以下方式操作:
Get.offAll(HomePage());
muk1a3rh3#
使用Get.ofAll(Home());可避免创建HomePage的新示例,这将删除导航堆栈中的所有堆栈页面
Get.ofAll(Home());
HomePage
从Home -> Products -> Details -> Home.导航器创建一个堆栈,以便您可以在弹出页面时返回到堆栈的顶部
Home -> Products -> Details -> Home.
| Home | 👈 Top of the stack | Details | | Products | | Home | |__________|
Home
要访问Home,您必须弹出堆栈中的所有元素并到达Home1.弹出详细信息屏幕
_> Pop Details Page from the stack | ( | | Details | | Products | | Home | |__________|
2.膨化产品屏幕
_> Pop Products Page from the stack | ( | | Products | | Home | |__________|
现在堆栈:
| | | Home | 👈 Top of the stack |__________|
Details Page
不可以,您无法返回到DetailsPage,因为您已弹出DetailsPage、ProductsPage以到达Home
DetailsPage
ProductsPage
3条答案
按热度按时间xwmevbvl1#
您需要从
Navigation stack
弹出/返回屏幕到主页,而不是在导航堆栈中再次添加它。在您当前的代码中,您再次从产品详细信息页面在导航堆栈中添加主页。因此,你需要使用
offAll
或offNamedUntil
避免主页的新示例,你需要弹出/返回屏幕,直到主屏幕。避免它将从导航堆栈中删除所有以前的页面。
有关详细信息,请查看此link
官方软件包检查自述文件
Route management
链接2lpgd9682#
点击产品详细信息页面,请按以下方式操作:
muk1a3rh3#
使用
Get.ofAll(Home());
可避免创建HomePage
的新示例,这将删除导航堆栈中的所有堆栈页面解释:
从
Home -> Products -> Details -> Home.
导航器创建一个堆栈,以便您可以在弹出页面时返回到堆栈的顶部
如果我只需要
Home
的一个示例该怎么办?要访问Home,您必须弹出堆栈中的所有元素并到达
Home
1.弹出详细信息屏幕
2.膨化产品屏幕
现在堆栈:
现在是否可以返回到
Details Page
?不可以,您无法返回到
DetailsPage
,因为您已弹出DetailsPage
、ProductsPage
以到达Home