有没有办法获得被推送的路线的上下文以在其中显示小吃店?
Posted
技术标签:
【中文标题】有没有办法获得被推送的路线的上下文以在其中显示小吃店?【英文标题】:Is there a way to get the context of the route being pushed to show a snackbar in it? 【发布时间】:2020-03-15 03:39:17 【问题描述】:我有一个弹出所有路线并推送新路线的屏幕。在这个被推送的新屏幕上,我想显示一个小吃店,但我无法让它工作。 应用程序的另一部分我需要做类似的事情,但不会弹出所有路由。 这是我目前正在尝试的方式,但我认为它不起作用,因为我没有使用新推送屏幕的上下文:
if (something)
Navigator.pushNamedAndRemoveUntil(
context,
searchRoute,
(_) => false,
);
final snackbar = SnackBar(
content: Text("Thing done successfully!"),
backgroundColor: Colors.green[700],
);
Scaffold.of(context).showSnackBar(snackbar);
return true;
else
return false;
这就是为什么我想知道当我使用导航器推送路线时是否有办法获取路线的上下文,这样我就可以使用它来正确显示小吃栏。
【问题讨论】:
【参考方案1】:你必须使用GlobalKey
,在类中声明_scaffoldKey
,
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
然后在您的Scaffold
中设置密钥
@override
Widget build(BuildContext context)
return new Scaffold(
key: _scaffoldKey,
以后使用,
_scaffoldKey.currentState.showSnackBar(snackbar);
希望它有效。
【讨论】:
以上是关于有没有办法获得被推送的路线的上下文以在其中显示小吃店?的主要内容,如果未能解决你的问题,请参考以下文章
Snackbar 仅在 Android 应用程序中的一项活动中显示