一个通用的对话框结构,可指定头、中、尾处的组件。拥有标题、内容的文字样式和边距,影深、形状等属性。
相关组件
AlertDialog基本使用
【title】 : 顶部组件 【Widget】
【content】 : 内容组件 【Widget】
【titleTextStyle】 : 顶部文字样式 【TextStyle】
【contentTextStyle】 : 内容文字样式 【TextStyle】
【titlePadding】 : 顶部内边距 【EdgeInsetsGeometry】
【contentPadding】 : 内容内边距 【EdgeInsetsGeometry】
【actions】 : 右下角组件列表 【List
【backgroundColor】 : 右下角组件列表 【背景色】
【elevation】 : 右下角组件列表 【背景色】
【shape】 : 影深 【double】
import 'package:flutter/material.dart';class CustomAlertDialog extends StatelessWidget {@overrideWidget build(BuildContext context) {return Column(children: <Widget>[_buildRaisedButton(context),_buildAlertDialog(),],);}Widget _buildRaisedButton(BuildContext context) => RaisedButton(shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(10))),color: Colors.blue,onPressed: () {showDialog(context: context, builder: (ctx) => _buildAlertDialog());},child: Text('Just Show It !',style: TextStyle(color: Colors.white),),);Widget _buildAlertDialog() {return AlertDialog(title: _buildTitle(),titleTextStyle: TextStyle(fontSize: 20, color: Colors.black),titlePadding: EdgeInsets.only(top: 5,left: 20,),contentPadding: EdgeInsets.symmetric(horizontal: 5),backgroundColor: Colors.white,content: _buildContent(),actions: <Widget>[Icon(Icons.android, color: Colors.blue,),Icon(Icons.add, color: Colors.blue,),Icon(Icons.g_translate, color: Colors.blue,),Icon(Icons.games, color: Colors.blue,),],elevation: 4,shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(10))),);}Widget _buildTitle() {return Row(//标题children: <Widget>[Image.asset("assets/images/icon_head.png",width: 30,height: 30,),SizedBox(width: 10,),Expanded(child: Text("关于",style: TextStyle(fontSize: 18),)),CloseButton()],);}Widget _buildContent() {return Column(mainAxisSize: MainAxisSize.min,children: <Widget>[Padding(padding: const EdgeInsets.all(10.0),child: Text(' FlutterUnit是【张风捷特烈】的开源项目,''收录Flutter的200+组件,并附加详细介绍以及操作交互,''希望帮助广大编程爱好者入门Flutter。''更多知识可以关注掘金账号、公众号【编程之王】。',style: TextStyle(color: Color(0xff999999), fontSize: 16),textAlign: TextAlign.justify,),),],);}}
