flutter 使用Getx Navigation从主页->产品页面->产品详情页面->主页跳转,无需创建新的主页示例

envsm3lx  于 2023-01-06  发布在  Flutter
关注(0)|答案(3)|浏览(330)

如果用户点击返回从主页,他应该去产品详细信息页面。
当我使用Get.tonamed(Routes.Home)时,Getx正在创建一个新的homepage示例。
如果我删除堆栈中的页面并返回主页,我无法将用户带到详细信息页面,因为用户按了后退按钮。
我想在用户单击“后退”按钮时将其带到详细信息页面。

xwmevbvl

xwmevbvl1#

您需要从Navigation stack弹出/返回屏幕到主页,而不是在导航堆栈中再次添加它。在您当前的代码中,您再次从产品详细信息页面在导航堆栈中添加主页。
因此,你需要使用offAlloffNamedUntil避免主页的新示例,你需要弹出/返回屏幕,直到主屏幕。避免
它将从导航堆栈中删除所有以前的页面。

Get.offAll(Home()); 

 //  OR. //

Get.offNamedUntil('home', (route) => false); // RouteName

有关详细信息,请查看此link
官方软件包检查自述文件Route management链接

2lpgd968

2lpgd9682#

点击产品详细信息页面,请按以下方式操作:

Get.offAll(HomePage());
muk1a3rh

muk1a3rh3#

使用Get.ofAll(Home());可避免创建HomePage的新示例,这将删除导航堆栈中的所有堆栈页面

解释:

Home -> Products -> Details -> Home.
导航器创建一个堆栈,以便您可以在弹出页面时返回到堆栈的顶部

| Home     |  👈 Top of the stack 
| Details  |
| Products |
| Home     |
|__________|
如果我只需要Home的一个示例该怎么办?

要访问Home,您必须弹出堆栈中的所有元素并到达Home
1.弹出详细信息屏幕

_>  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,因为您已弹出DetailsPageProductsPage以到达Home

相关问题