Элементы конструктора ListView.builder переполнены

#flutter #dart

Вопрос:

Я использую ListView.builder() для отображения своих элементов списка, но элементы внутри фиксированного контейнера переполнены, и я не уверен, как это исправить. Вот такое поведение я получаю:

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

Выделенная область — это область, в которой элементы переполнены. Это код для представления списка:

 Container(
                        height: size.height * .3,
                        child: Consumer<TodoProvider>(
                          builder: (context, todoProvider, child) {
                            return todoProvider.getTodos.length == 0
                                ? Center(
                                    child: Text('Your todos will appear here!'),
                                  )
                                : ListView.builder(
                                    physics: BouncingScrollPhysics(),
                                    padding: EdgeInsets.all(0),
                                    itemCount: todoProvider.getTodos.length,
                                    itemBuilder: (context, index) {
                                      // if element is not the first and the last then add padding
                                      return (index != 0 amp;amp;
                                              index !=
                                                  todoProvider.getTodos.length -
                                                      1)
                                          ? Padding(
                                              padding:
                                                  const EdgeInsets.symmetric(
                                                      vertical: 5),
                                              child: CustomListTile(todoProvider
                                                  .getTodos[index].title),
                                            )
                                          : CustomListTile(todoProvider
                                              .getTodos[index].title);
                                    },
                                  );
 

debugPaintSizeEnabled = true;

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

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

Любая помощь будет очень признательна. Спасибо!

Комментарии:

1. переполнен? что вы имеете в виду под этим? опубликуйте свой снимок экрана еще раз, когда вы войдете debugPaintSizeEnabled = true; внутрь main()

2. @pskink Я добавил вывод. Пожалуйста, взгляните.

3. так что же такое переполнение? последний элемент («d») обрезан контейнером «Выполненные задачи», и я не вижу никакого «переполнения».

4. «d» здесь не последний пункт. Пожалуйста, сосредоточьтесь на выделенной красным области. Там вы найдете лист с белым фоном за текстом «Выполненные задачи». Эта плитка содержит заголовок, но заголовок не виден, когда элемент пересекает эту высоту, но фон все еще виден. Позвольте мне изменить цвет плитки, и тогда вы поймете, о чем я говорю.

5. @pskink, пожалуйста, взгляните сейчас.

Ответ №1:

Упаковка листа со списком в карточку исправила для меня эту проблему. Вот как это выглядит сейчас:

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