Listview 具有动态高度的颤振警报对话框
我在Listview 具有动态高度的颤振警报对话框,listview,dart,flutter,height,android-alertdialog,Listview,Dart,Flutter,Height,Android Alertdialog,我在AlertDialog中有ListView。在这种情况下,如何根据列表数据设置AlertDialog的动态高度 return AlertDialog( contentPadding: EdgeInsets.all(0.0), shape: RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(5.0))), content: new Container(
AlertDialog
中有ListView
。在这种情况下,如何根据列表数据设置AlertDialog
的动态高度
return AlertDialog(
contentPadding: EdgeInsets.all(0.0),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(5.0))),
content: new Container(
width: screenSize.width * 0.9,
height: screenSize.height * 0.5,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Container(
width: screenSize.width,
height: 40,
padding: EdgeInsets.only(left: 10, right: 10),
color: const Color(colorPrimary),
child: Align(
child: Text(
selectedProductName != null ? selectedProductName : "",
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w500,
fontFamily: 'helvetica',
color: Colors.white)),
alignment: Alignment.center,
),
),
Container(
height: 35,
color: const Color(colorAccent),
child: Row(
children: <Widget>[
Expanded(
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
"City",
style: prifixTxtPrimaryStyle,
),
],
),
flex: 1,
),
Container(
width: 1,
color: Colors.white70,
),
Expanded(
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
"Name",
style: prifixTxtPrimaryStyle,
),
],
),
flex: 1,
),
Container(
width: 1,
color: Colors.white70,
),
Expanded(
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
"Qty",
style: prifixTxtPrimaryStyle,
),
],
),
flex: 1,
),
],
),
),
new Expanded(
child: ListView.builder(
itemCount: listDialogDisplay.length,
shrinkWrap: true,
itemBuilder: (BuildContext context, int index) {
return listDialogDisplay.length > 0
? Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Container(
//height: 35,
width: screenSize.width,
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment:
MainAxisAlignment.spaceAround,
children: <Widget>[
Expanded(
child: Align(
alignment: Alignment.center,
child: Padding(
padding: EdgeInsets.only(
left: 2, right: 2),
child: Text(
listDialogDisplay[index]
.City
.toString(),
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w500,
fontFamily: 'helvetica',
),
),
),
),
flex: 1,
),
Container(
width: 1,
color: Colors.black12,
height: 25,
margin:
EdgeInsets.only(top: 5, bottom: 5),
),
Expanded(
child: Align(
alignment: Alignment.center,
child: Padding(
padding: EdgeInsets.only(
left: 2, right: 2),
child: Text(
listDialogDisplay[index]
.Name
.toString(),
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w500,
fontFamily: 'helvetica',
)),
),
),
flex: 1,
),
Container(
width: 1,
color: Colors.black12,
height: 25,
margin:
EdgeInsets.only(top: 5, bottom: 5),
),
Expanded(
child: Align(
alignment: Alignment.center,
child: Padding(
padding: EdgeInsets.only(
left: 2, right: 2),
child: Text(
listDialogDisplay[index]
.Qty
.toString(),
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w500,
fontFamily: 'helvetica',
)),
),
),
flex: 1,
),
],
),
),
Container(
width: screenSize.width,
color: Colors.black12,
height: 1,
),
],
)
: Container();
},
),
),
Container(
width: screenSize.width,
height: 45,
child: Row(
children: <Widget>[
Expanded(
child: ButtonDialogWidgets(
buttonName: 'Exit',
buttonColor: const Color(colorPrimary),
textColor: Colors.white,
onTap: () {
Navigator.of(context).pop();
},
),
flex: 1,
),
],
),
),
],
),
)
);
返回警报对话框(
contentPadding:EdgeInsets.all(0.0),
形状:圆形矩形边框(
borderRadius:borderRadius.all(半径.圆形(5.0)),
内容:新容器(
宽度:screenSize.width*0.9,
高度:屏幕大小。高度*0.5,
子:列(
crossAxisAlignment:crossAxisAlignment.center,
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
容器(
宽度:screenSize.width,
身高:40,
填充:仅限边设置(左:10,右:10),
颜色:常量颜色(colorPrimary),
子对象:对齐(
子:文本(
selectedProductName!=null?selectedProductName:“”,
样式:TextStyle(
字体大小:14.0,
fontWeight:fontWeight.w500,
fontFamily:“helvetica”,
颜色:颜色。白色),
对齐:对齐.center,
),
),
容器(
身高:35,
颜色:常量颜色(colorAccent),
孩子:排(
儿童:[
扩大(
孩子:排(
crossAxisAlignment:crossAxisAlignment.center,
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
正文(
“城市”,
样式:PrifixtPrimaryStyle,
),
],
),
弹性:1,
),
容器(
宽度:1,
颜色:颜色。白色70,
),
扩大(
孩子:排(
crossAxisAlignment:crossAxisAlignment.center,
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
正文(
“姓名”,
样式:PrifixtPrimaryStyle,
),
],
),
弹性:1,
),
容器(
宽度:1,
颜色:颜色。白色70,
),
扩大(
孩子:排(
crossAxisAlignment:crossAxisAlignment.center,
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
正文(
“数量”,
样式:PrifixtPrimaryStyle,
),
],
),
弹性:1,
),
],
),
),
新扩展(
子项:ListView.builder(
itemCount:listDialogDisplay.length,
收缩膜:对,
itemBuilder:(构建上下文,int索引){
返回listDialogDisplay.length>0
?立柱(
mainAxisSize:mainAxisSize.min,
儿童:[
容器(
//身高:35,
宽度:screenSize.width,
孩子:排(
crossAxisAlignment:crossAxisAlignment.center,
主轴对准:
MainAxisAlignment.spaceAround,
儿童:[
扩大(
子对象:对齐(
对齐:对齐.center,
孩子:填充(
填充:仅限边缘设置(
左:2,右:2),
子:文本(
listDialogDisplay[索引]
城市
.toString(),
样式:TextStyle(
字体大小:14.0,
fontWeight:fontWeight.w500,
fontFamily:“helvetica”,
),
),
),
),
弹性:1,
),
容器(
宽度:1,
颜色:颜色。黑色,
身高:25,
保证金:
仅限边缘设置(顶部:5,底部:5),
),
扩大(
子对象:对齐(
对齐:对齐.center,
孩子:填充(
填充:仅限边缘设置(
左:2,右:2),
子:文本(
listDialogDisplay[索引]
名称
.toString(),
样式:TextStyle(
字体大小:14.0,
fontWeight:fontWeight.w500,
fontFamily:“helvetica”,
)),
),
),
弹性:1,
),
容器(
宽度:1,
颜色:颜色。黑色,
身高:25,