Flutter Listview отображает не все элементы

#flutter #listview

Вопрос:

У меня есть представление списка, которое должно отображать поток элементов из firebase. После каждых двух элементов отображается пользовательский виджет, и для достижения этой цели я использую оператор if else. Проблема сейчас в том, что мой пользовательский виджет перезаписывает некоторые элементы из firebase, так что, если в потоке всего 5 элементов, я получаю только 3, а остальные 2 заменяются моим пользовательским виджетом. Есть ли способ получить все элементы, включая пользовательский виджет, чтобы (следуя приведенному выше примеру) У меня может быть всего 7 предметов? Вот мой код для справки

 StreamBuilder(
            stream: stream,
            //stream: getposts(),
            builder: (BuildContext context,
                AsyncSnapshot<List<DocumentSnapshot>>snapshots) {
return Flexible(
                  child: ListView.builder(
                    scrollDirection: Axis.vertical,
                    shrinkWrap: true,
                    itemBuilder: (context, index) {

                    if(index % 2 == 0 amp;amp; index != 0){
                       return Container(child: Text("Custom Widget")) //this is the code inserting custom widget into the listview
                    else{ Container(child: Text(snapshots.data.title))
}

}))
}
 

Ответ №1:

Не могли бы вы использовать такую колонку(?)

 if(index % 2 == 0 amp;amp; index != 0){
  return Column(
    children: [
      Container(child: Text("Custom Widget")),
      Container(child: Text(snapshots.data.title)),
    ]
  );
} else {
  return Container(child: Text(snapshots.data.title))
}