首页 > 解决方案 > 颤振如何使用alertDialog?

问题描述

我正在颤抖中制作登录系统。

我想使用 alertDialog 登录失败。

if-else 包含在 onpressed 中:

else {
                      AlertDialog(
                        title: Column(
                          children: <Widget>[
                            new Text("Log in failed"),
                          ],
                        ),
                        //
                        content: Column(
                          mainAxisSize: MainAxisSize.min,
                          crossAxisAlignment: CrossAxisAlignment.start,
                          children: <Widget>[
                            Text(
                              "ID or Password doesn't exist",
                            ),
                          ],
                        ),
                        actions: <Widget>[
                          new FlatButton(
                            child: new Text("OK"),
                            onPressed: () {
                              Navigator.pop(context);
                            },
                          ),
                        ],
                      );

写 return 不起作用,删除 return 不显示任何内容。

如何解决这个问题?

标签: flutter

解决方案


您需要调用showDialog并传递AlertDialog您创建的。

我在DartPad上创建的演示。

await showDialog(
  context: context,
  builder: (context) => AlertDialog(
    title: Column(
      children: <Widget>[
        new Text("Log in failed"),
      ],
    ),
    //
    content: Column(
      mainAxisSize: MainAxisSize.min,
      crossAxisAlignment: CrossAxisAlignment.start,
      children: <Widget>[
        Text(
          "ID or Password doesn't exist",
        ),
      ],
    ),
    actions: <Widget>[
      new FlatButton(
        child: new Text("OK"),
        onPressed: () {
          Navigator.pop(context);
        },
      ),
    ],
  ),
);

注意:使用 TextButton 而不是 FlatButton,因为 FlatButton 已弃用


推荐阅读