我尝试从SnackBar
执行操作后显示AppBar
。
无法从构建器构建AppBar
,因此Scaffold祖先无法访问。
我知道我们可以随时使用GlobalKey
对象访问上下文,但是我想知道是否有一种解决方案,而无需使用GlobalKey
。
我发现了一些github问题和请求请求,但是我找不到解决方案
=> https://github.com/flutter/flutter/issues/4581和https://github.com/flutter/flutter/pull/9380
更多背景信息:
我有一个带有Appbar
的PopupMenuButton
,其中有一项。当用户单击此项目时,我将显示一个对话框,该对话框使用showDialog
方法;如果用户单击“确定”,则要显示一个SnackBar
最佳答案
您可以使用构建器小部件
例子:
Scaffold(
appBar: AppBar(
actions: <Widget>[
Builder(
builder: (BuildContext context) {
return IconButton(
icon: const Icon(Icons.message),
onPressed: () {
final snackBar = SnackBar(content: Text('Yay! A SnackBar!'));
Scaffold.of(context).showSnackBar(snackBar);
},
);
},
),
],
)
);
关于dart - Flutter:如何通过应用程序栏操作显示 snackbar ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53527002/