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
样式:
![](https://img.haomeiwen.com/i1234161/721509e4e1316749.png)
网友评论