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,