Flutter-SimpleDialog

作者: 哎呀啊噢 | 来源:发表于2019-07-19 17:42 被阅读1次
SimpleDialog class

介绍:
为用户几个提供选项,可选标题,标题在选项上不边的信息弹出窗.

使用
和其他Dialog一样,作为子Weiget传递给ShowDialog使用;选项使用官方提供的SimpleDialogOption来表示;

代码:

import 'package:flutter/material.dart';

/*
* simpleDialog
* */

class MySimpleDialog extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('SimpleDialog'),),
        backgroundColor: Colors.white,
        body: Center(
          child: RaisedButton(
            onPressed: () {
              _MySimpleDialog(context);
            },
            child: Text(
              'SimpleDialog',
              style: TextStyle(color: Colors.white),
            ),
            color: Colors.green,
          ),
        ));
  }

  void _MySimpleDialog(BuildContext context) {
    showDialog(
        context: context,
        builder: (BuildContext context) {
          return SimpleDialog(
            title: Text(
              'This is SimpleDialog title',
              style: TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold),
            ),
            children: <Widget>[
              _contentWidget(context, 'Option1'),
              _contentWidget(context, 'Option2'),
              _contentWidget(context, 'Option3'),
            ],
          );
        });
  }

  Widget _contentWidget(BuildContext context, String content) {
    return SimpleDialogOption(
      child: Center(child: Text(content)),
      onPressed: () {
        Navigator.of(context).pop();
      },
    );
  }
}

继承关系

Object -> Diagnosticable -> DiagnosticableTree -> Widget -> StatelessWidget -> SimpleDialog

构造方法

SimpleDialog({Key key, Widget title, EdgeInsetsGeometry titlePadding: const EdgeInsets.fromLTRB(24.0, 24.0, 24.0, 0.0), List<Widget> children, EdgeInsetsGeometry contentPadding: const EdgeInsets.fromLTRB(0.0, 12.0, 0.0, 16.0), Color backgroundColor, double elevation, String semanticLabel, ShapeBorder shape })
Creates a simple dialog. [...]
  • backgroundColor → Color 背景颜色
  • children → List<Widget> 子widget集合,存放SimpleDialogOption;
  • contentPadding → EdgeInsetsGeometry 内容区域padding
  • elevation → double 底部阴影高度
  • semanticLabel → String 图像的文本描述
  • shape → ShapeBorder 边框圆角
  • title → Widget 标题
  • titlePadding → EdgeInsetsGeometry 标题区域的padding

样式:

image.png

相关文章

网友评论

    本文标题:Flutter-SimpleDialog

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