【发布时间】:2021-12-22 16:31:24
【问题描述】:
我在 Flutter 上使用 GetX 进行路由管理时遇到了问题。
我的底部导航栏中有一个按钮,可以从应用程序的任何位置按下该按钮。让我们称之为用户在按下按钮时所在的位置根屏幕。按下此按钮后,会弹出一个新的屏幕 A,其中包含更多选项,与这些选项交互时,将通向屏幕 B,然后再通向屏幕 C,而 C 以通向屏幕 D 结束。
我已经做到了,按下导航栏中的按钮将调用Get.to(A())并弹出屏幕A,并且在appBar的左上角有一个返回按钮将调用Get.back()。我的问题是,当我在屏幕 B、C 或 D 上时,我想实现一个类似的后退按钮,按下该按钮时会弹出到根屏幕(用户在与导航栏中的按钮交互之前所在的屏幕)。问题是Go.back() 在这种情况下只会导致上一个屏幕(D 会导致 C,B 会导致 A)并且使用Get.offAllNamed("rootScreen") 意味着我必须存储根屏幕的名称并通过一直到 D。有没有更简单的方法可以弹出到根屏幕/使用 Get 的任何替代方法?谢谢!
编辑:
现在我多次打电话给Get.back(),它似乎可以工作,例如如果我在屏幕B上,我连续调用2次返回根屏幕,如果在C上,则调用3次,等等。如果有人知道更有效的方法,请帮助我,谢谢!
【问题讨论】:
标签: flutter routes get navigation flutter-getx