#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))
}