gpt4 book ai didi

flutter - Navigator.pop() 回调?

转载 作者:行者123 更新时间:2023-12-03 02:52:53 25 4
gpt4 key购买 nike

是否有回调函数或方法知道Navigator.of(context).pop()回到上一画面的动画完成了吗?目前我正在使用 await Future.delayed(Duration(milliseconds: 500));来实现这一点。有没有更好的办法?

我用它来 showModalBottomSheet(useRootNavigator: true)然后 Navigator.pop()关闭底部工作表,然后推新路线。

代码:

Navigator.of(context).pop();
await Future.delayed(Duration(milliseconds: 500));
Navigator.of(context).push(...) // push new screen

最佳答案

推送一个路由已经维护了一个 Future,当一个 pop 发生时它就完成了。这意味着你可以这样做:

Navigator.of(context).pushNamed('/someRoute').then((completion){
//do something
});

名为完成的参数也可以是您想要从显示的屏幕中检索的任何数据。例如,假设我有一个群聊,我想向其中添加一个用户。为此,我想显示一个屏幕,允许我选择一个用户,然后将该用户传递回上一个屏幕。
Navigator.of(context).pushNamed('/InviteToChatScreen').then((object) {
if (object != null) {
var user = object as User;
//add them to the chat
}
});

关于flutter - Navigator.pop() 回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59291336/

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