我尝试从SnackBar执行操作后显示AppBar
无法从构建器构建AppBar,因此Scaffold祖先无法访问。
我知道我们可以随时使用GlobalKey对象访问上下文,但是我想知道是否有一种解决方案,而无需使用GlobalKey
我发现了一些github问题和请求请求,但是我找不到解决方案
=> https://github.com/flutter/flutter/issues/4581https://github.com/flutter/flutter/pull/9380

更多背景信息:
我有一个带有AppbarPopupMenuButton,其中有一项。当用户单击此项目时,我将显示一个对话框,该对话框使用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/

10-12 04:28