sjm*_*all 6 navigator dart flutter
如果这很明显,那么Flutter的新人请原谅我,但我已阅读文档并尝试了一堆Navigator选项,但它们都没有按照我的意愿工作.问题集:我们有一系列复杂(良好,半复杂)的屏幕等处理登录/授权/注册过程.这可以在Route堆栈上降低到3或4级.这一切都很好 - 不用担心.
当我们获得一个成功的登录事件(来自几个不同的路径)并想要转到"主页"页面时,问题就出现了.一旦我们在主页上应该是Route树的新"根"(我确信这不是正确的术语 - 但我认为这个想法是可靠的).
所以,考虑到我们可能是1/2/3甚至4级,并希望"弹出"并将整个堆栈(请将任何转换事件)替换为新的顶级根 - 什么神奇的Navigator集或方法将干净利落地做?
我当前(可怕的)方法是手动"pop()"级别并执行Navigator.pushReplacementNamed()调用(这里都是命名路由)但这不是通用解决方案(必须确切知道多少级别)更糟糕的是,它会导致"动画"过渡到屏幕上的"弹出"一瞬间,每个pop()看起来......不是很好.
TIA!
Rém*_*let 22
导航器揭示的不仅仅是pop.您可以执行以下操作:
Navigator.pushNamedAndRemoveUntil(context, '/', (_) => false);
Run Code Online (Sandbox Code Playgroud)
这将基本上推动一个家,并删除新的后面的所有路线
试试这个代码:
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(
builder: (BuildContext context) => YourInitialPage(),
),
ModalRoute.withName('/'));
Run Code Online (Sandbox Code Playgroud)
如果您不想转换,您可以覆盖或扩展MaterialPageRoute该类
| 归档时间: |
|
| 查看次数: |
4418 次 |
| 最近记录: |