gpt4 book ai didi

flutter - 在 Flutter 中导航后显示 snackbar

转载 作者:IT老高 更新时间:2023-10-28 12:32:28 27 4
gpt4 key购买 nike

执行操作(例如“保存”)后,用户将返回到应用中的另一个页面。

我想在新页面上显示一个 snackbar 以确认操作,但不希望它显示用户是否在没有操作的情况下导航到那里。例如,如果用户保存“事物”,应用程序会将他们发送到“事物”主页并显示“保存的” snackbar ,但如果他们以其他方式转到“事物”主页,我​​不想要“保存” snackbar 在那里。

这是我保存在面板上的代码,但目标页面不显示 snackbar - 无论我将 snackbar 放在哪里(导航之前或之后),它都不会执行 snackbar 。

Future<Null> saveThatThing() async {
thing.save();
thing = new Thing();
Navigator.of(context).push(getSavedThingRoute());
Scaffold.of(context).showSnackBar(
new SnackBar(
content: new Text('You saved the thing!'),
),
);
}

最好的方法是什么?

最佳答案

如果你像这样为屏幕 Scaffold 创建键会怎么样(把这个对象放在屏幕状态类中):

final GlobalKey<ScaffoldState> scaffoldKey = new GlobalKey<ScaffoldState>();

然后将此变量设置为 Scaffold 键,如下所示:

return new Scaffold(
key: scaffoldKey,
appBar: new AppBar(
.......,
),

最后显示 SnackBar 只需在屏幕状态类中的某处使用此代码:

scaffoldKey.currentState
.showSnackBar(new SnackBar(content: new Text("Hello")));

或者您可以将最新代码包装在这样的方法中:

void showInSnackBar(String value) {
scaffoldKey.currentState
.showSnackBar(new SnackBar(content: new Text(value)));}

然后只需调用此方法并将 snackbar 消息传递到里面。

如果您想在下一个屏幕上显示 snackbar 消息,在您离开初始上下文后,只需在下一个屏幕上调用 snackbar 方法,而不是在第一个屏幕上。

希望这会有所帮助

关于flutter - 在 Flutter 中导航后显示 snackbar ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47914739/

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