美文网首页
2019-04-19

2019-04-19

作者: 一_贫 | 来源:发表于2019-04-19 22:33 被阅读0次

    json 转model

    贼好用的网站
    https://app.quicktype.io/

    Flutter Dialog

    Flutter提供了showDialog函数显示一个对话框。
    showDialog:展示Material 控件
    showCupertinoDialog:ios样式对话框
    showGeneralDialog:自定义弹出的窗口,默认状态下弹出的窗口点击空白处不消失

    Flutter中的Dialog主要是SimpleDialog和AlertDialog。

    https://juejin.im/post/5c0aa283518825444612a1eb

    • SimpleDialog,一般可以利用多个SimpleDialogOption为用户提供了几个选项。
    • AlertDialog,警告对话框。警告对话框有一个可选标题title和一个可选列表的actions选项。

    展示一个简单的SimpleDialog,代码如下:

    void showMySimpleDialog(BuildContext context) {
        showDialog(
            context: context,
            builder: (context) {
              return new SimpleDialog(
                title: new Text("SimpleDialog"),
                children: <Widget>[
                  new SimpleDialogOption(
                    child: new Text("SimpleDialogOption One"),
                    onPressed: () {
                      Navigator.of(context).pop("SimpleDialogOption One");
                    },
                  ),
                  new SimpleDialogOption(
                    child: new Text("SimpleDialogOption Two"),
                    onPressed: () {
                      Navigator.of(context).pop("SimpleDialogOption Two");
                    },
                  ),
                  new SimpleDialogOption(
                    child: new Text("SimpleDialogOption Three"),
                    onPressed: () {
                      Navigator.of(context).pop("SimpleDialogOption Three");
                    },
                  ),
                ],
              );
            });
      }
    

    展示一个简单的Material风格的AlertDialog,代码如下:

    void showMyMaterialDialog(BuildContext context) {
        showDialog(
            context: context,
            builder: (context) {
              return new AlertDialog(
                title: new Text("title"),
                content: new Text("内容内容内容内容内容内容内容内容内容内容内容"),
                actions: <Widget>[
                  new FlatButton(
                    onPressed: () {
                      Navigator.of(context).pop();
                    },
                    child: new Text("确认"),
                  ),
                  new FlatButton(
                    onPressed: () {
                      Navigator.of(context).pop();
                    },
                    child: new Text("取消"),
                  ),
                ],
              );
            });
      }
    

    实际应用中一个例子

    void _onRemove(Action action, Context<ToDoState> ctx) async {
      final String select = await showDialog<String>(
          context: ctx.context,
          builder: (BuildContext buildContext) {
            return AlertDialog(
              title: Text('Are you sure to delete "${ctx.state.title}"?'),
              actions: <Widget>[
                GestureDetector(
                  child: const Text(
                    'Cancel',
                    style: TextStyle(fontSize: 16.0),
                  ),
                  onTap: () => Navigator.of(buildContext).pop(),
                ),
                GestureDetector(
                  child: const Text('Yes', style: TextStyle(fontSize: 16.0)),
                  onTap: () => Navigator.of(buildContext).pop('Yes'),
                )
              ],
            );
          });
    
      if (select == 'Yes') {
        ctx.dispatch(ToDoActionCreator.removeAction(ctx.state.uniqueId));
      }
    }
    

    相关文章

      网友评论

          本文标题:2019-04-19

          本文链接:https://www.haomeiwen.com/subject/elncgqtx.html