Flutter 在颤振中使用onPressed调用函数时出现问题

Flutter 在颤振中使用onPressed调用函数时出现问题,flutter,Flutter,我正试图调用一个函数来处理按下的颤振 我试过了 onPressed: (){ _showDialog; }, 及 及 这是我的职责 void _showDialog() { showDialog( context: context, builder: (BuildContext context) { return AlertDialog( title: Text("Title"), conten

我正试图调用一个函数来处理按下的颤振

我试过了

onPressed: (){ 
   _showDialog;
},

这是我的职责

  void _showDialog() {
    showDialog(
      context: context,
      builder: (BuildContext context) {
        return AlertDialog(
          title: Text("Title"),
          content: Text("Body"),
          actions: <Widget>[
            FlatButton(
              child: Text("Close"),
              onPressed: () {
                Navigator.of(context).pop();
              },
            ),
          ],
        );
      },
    );
  }

您应该尝试以下方法:

onPressed: (){ 
   _showDialog();
},

更新

轻松修复:删除const关键字

      secondary: IconButton(
                    icon: Icon(Icons.domain),
                    onPressed: (){
                      _showDialog();
                    },
                  ),

删除常量关键字

您的代码

   secondary: const IconButton(
                icon: Icon(Icons.domain),
                onPressed: (){
                  _showDialog();
                },
              ),
   secondary: IconButton(
                icon: Icon(Icons.domain),
                onPressed: (){
                  _showDialog();
                },
              ),
更新了一个

   secondary: const IconButton(
                icon: Icon(Icons.domain),
                onPressed: (){
                  _showDialog();
                },
              ),
   secondary: IconButton(
                icon: Icon(Icons.domain),
                onPressed: (){
                  _showDialog();
                },
              ),

对于某些场景,您可以声明顶级或静态函数:

  static void myHandler() {
    _showDialog();
  }


只有在这种情况下(顶级或静态),myHandler才能被视为常量并传递给常量构造函数。

您需要检查并删除contanier(小部件)
const
像这样

(十) (O)
我仍然收到“无效常量值”错误。您可以添加错误日志吗?当您按通话时也要添加代码对不起,我的代码没有运行,因此没有错误日志_showDialog以红色下划线,当鼠标置于其上时,错误显示为“无效常量值”。我已经用代码更新了我的问题。谢谢。我用截图更新了我的问题。这是因为在你上面的树上,有另一个“const”(甚至不止一个)。把所有的东西都追根溯源,删除你找到的任何“const”关键字。一个又好又清楚的问题答案和我自己的看法一样,可能有相同的答案。但是,这样做是错误的吗?是的,将来人们会来寻找解决问题的方法,这会使他们更难阅读所有答案。如果你的解决方案已经被提及,你可以投票表决。
   secondary: const IconButton(
                icon: Icon(Icons.domain),
                onPressed: (){
                  _showDialog();
                },
              ),
   secondary: IconButton(
                icon: Icon(Icons.domain),
                onPressed: (){
                  _showDialog();
                },
              ),
  static void myHandler() {
    _showDialog();
  }
  secondary: const IconButton(
                icon: Icon(Icons.domain),
                onPressed: myHandler,
              ),
child: TextFormField(
                decoration: **const** InputDecoration(
                  prefixIcon: Icon(Icons.person),
                  suffixIcon: IconButton(
                      icon: Icon(Icons.remove_red_eye),
                      onPressed: showPassword,
                  ),
                  labelText: "Name *",
                  hintText: "Your Github account username",
                ),
              )
child: TextFormField(
                decoration:InputDecoration(
                 ...
              )