У меня есть 2 коллекции, каждая из которых имеет свой поток.
Я пытаюсь создать вложенный список, ЕСЛИ имя серии Коллекции 1 совпадает с именем серии Коллекции 2.
Я не уверен ни в каком другом способе сделать это из-за того, как я настроил базу данных.
У меня есть 2 коллекции, одна содержит информацию о серии, а другая содержит еженедельную информацию, которая обновляется еженедельно.
Итак, я попытался использовать циклы и операторы if.
Я успешно справился с одним из них, но, поскольку он находится в построителе списков, он выполняет цикл for для каждого элемента и, следовательно, повторяет в 4 раза больше, чем просмотр списка, длинный, что приводит к созданию дублирующих элементов.
Я уверен, что перебираю что-то очень простое.
ExpandableContainer(
expanded: expandFlag,
child: ListView.builder(
itemCount: snapshots.length,
itemBuilder: (context, index) {
if (snapshots[index].data["series"] ==
snapshot[widget.index].data["seriesName"]) {
return ListTile(
leading: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
snapshots[index].data["month"],
style: TextStyle(
color: Colors.black.withOpacity(.5),
fontSize: 15),
),
Text(
snapshots[index].data["day"],
style: TextStyle(
color: Colors.black.withOpacity(0.5),
fontSize: 30),
),
],
),
title: Text(snapshots[index].data["sermonTitle"]),
subtitle:
Text(snapshots[index].data["sermonReference"]),
trailing: Icon(Icons.arrow_forward_ios),
onTap: () => passData(snapshots[index]),
);
}
},
),)
Прямо сейчас с кодом ничего не генерируется. Когда я добавляю debugPrint, чтобы увидеть, что происходит, он в основном выдает ошибку, когда выполняется условие, и ничего не возвращается, и я не знаю почему.
В идеале каждый элемент списка из Коллекции 1, если он входит в серию из Коллекции 2, возвращает элемент списка только один раз.