''CopyWith'被调用为空

问题描述 投票:0回答:1

我的productDetailSize列表中有2个对象,我想在AlertDialog的小部件中显示它,但是我有这个问题,并且在顶部(方法'copyWith'在null上被调用。接收者:null尝试调用:copyWith(maxWidth:Infinity)),

有什么解决方法吗?

Expanded(
            child: Padding(
              padding: const EdgeInsets.all(2.0),
              child: MaterialButton(
                onPressed: (){
                  print(widget.productDetailSize.length);
                  showDialog(                        
                    context: context,
                    builder: (BuildContext context){
                      return AlertDialog(
                        contentPadding: EdgeInsets.all(10.0),
                        titlePadding: EdgeInsets.all(2.0),
                        title: Text('Size'),
                        content: Container(
                          padding: EdgeInsets.only(left:5.0, right:5.0),
                          width: double.infinity,
                          child: ListView.builder(
                            scrollDirection: Axis.vertical,
                            itemCount: widget.productDetailSize.length,
                            itemBuilder: (BuildContext context, int index){
                              return ListTile(
                                leading: Checkbox(value: selectedSizes.contains(widget.productDetailSize[index].toString()), onChanged: (value)=>changeSelectedSize(widget.productDetailSize[index].toString()),),
                                title: Text(widget.productDetailSize[index].toString()),
                              );
                            },
                            shrinkWrap: true,
                          ),
                        ),
                        backgroundColor: Colors.white,
                        shape: RoundedRectangleBorder(
                          side: BorderSide.none,
                          borderRadius: BorderRadius.circular(5.0),
                        ),
                        actions: <Widget>[
                          MaterialButton(
                            onPressed: (){Navigator.of(context).pop();},
                            child: Text('close'),
                          )
                        ],
                      );
                    }
                  );
                },
                elevation: 0.2,
                color: Colors.white,
                textColor: Colors.grey,
                child: Row(
                  children: <Widget>[
                    Expanded(child: Text('Size'),),
                    Expanded(child: Icon(Icons.arrow_drop_down),),
                  ],
                ),
              ),
            ),
          ),

enter image description here

flutter android-alertdialog
1个回答
1
投票

我找到了解决方案,朋友们。 ListView.builder必须用Container小部件包装,并为Container赋予width

© www.soinside.com 2019 - 2024. All rights reserved.