'copyWith' был вызван на ноль - PullRequest
1 голос
/ 23 апреля 2020

В моем списке productDetailSize есть 2 объекта, и я хочу показать его в виджете AlertDialog, но у меня есть эта проблема и наверху

Был вызван метод copyWith на нуле. Получатель: 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(
                                    l    eading: 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),),
                ],
            ),
        ),
    ),
),

введите описание изображения здесь

1 Ответ

1 голос
/ 23 апреля 2020

Я нахожу решение, друзья. ListView.builder должен быть обернут в Container виджет и дать width для Container. В моем случае я дал

width: MediaQuery.of(context).size.width * 0.85.

Спасибо !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...