flutter 如何重建Widget后,被替换的路由被弹出?

r55awzrz  于 2023-04-13  发布在  Flutter
关注(0)|答案(1)|浏览(88)

我基本上有一个带有项目列表的主屏幕。如果我单击其中一个项目,用户将被路由到DetailScreen。从DetailScreen他可以转到下一个项目,或者返回到主屏幕:

MainScreen -> DetailScreen(0) -> DetailScreen(1) -> MainScreen

在主屏幕中,我使用Navigator.pushNamed()
在DetailScreen中我使用Navigator.replaceRoute()
我需要主屏幕重建后,我离开最后的DetailScreen。
Navigator.pushNamed().then(((_) => setState(() {})))在DetailScreen(0)被替换后已被调用。
向DetailScreen传递一个回调函数可能会起作用,但似乎不是很优雅。有更好的方法吗?

kmbjn2e3

kmbjn2e31#

如果你说的不优雅是指异步,那么你绝对可以这样做:在您的职能中(例如:onTap功能)

ListTile(
  //Other Properties
  onTap: () async {
    var value = await Navigator.of(context).pushNamed("/myroutename");
    setState(() {});
  }
)

相关问题