gpt4 book ai didi

dart - 在 MaterialApp 之外访问 Flutter 路由

转载 作者:IT王子 更新时间:2023-10-29 07:06:55 26 4
gpt4 key购买 nike

我有一个“固定的”自定义应用程序栏小部件,它位于我的 Material 应用程序之外。我希望此应用栏始终位于顶部,并且 Widget View 会发生变化。

我希望这个应用栏小部件能够监听 MaterialApp 中正在更新的路由并做出相应的 react 。

我想我需要使用 RouteObserver,但我很难让这个应用程序栏订阅任何路线事件。我试过广播一个流来通知任何监听它的小部件,但是这是从 initState 生命周期 Hook 触发的,所以只触发一次并且在调用 Navigator.pop() 时没有收到

我试过这个https://docs.flutter.io/flutter/widgets/RouteObserver-class.html .

关于如何实现这一点有什么想法吗?

最佳答案

我不确定这是否是在 MaterialApp 外部处理路由的正确方法,但这就是我解决问题的方法。

我开始使用 Fluro 导航器 https://github.com/goposse/fluro这给了我一个更好的路由框架来使用。

我现在有一个静态方法来处理 Fluro 路由以及向任何监听我的新 Application.doRoute(context, path) 的组件广播 View 更改流事件。

在 Application.doRoute(..) 中,我添加了我自己的自定义 _history 列表,其中包含每个新路由的上下文和路径。然后我可以调用另一个名为 Application.doBack() 的静态函数,它会弹出 _history 中的最后一项并再次广播 View 更改流。

我现在可以让根显示列表级别的小部件对 MaterialApp 中的更改使用react。

Navigator.pushNamed 和 Navigator.pop() 现在已被 Application.doRoute() 和 Application.goBack() 取代

关于dart - 在 MaterialApp 之外访问 Flutter 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49483719/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com