Flutter - Создание списков с различными типами предметов - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь использовать эту технику из кулинарной книги https://flutter.io/cookbook/lists/mixed-list/... Тем не менее, MessageItems для заголовка являются N, а не статическими ... Как использовать этот пример кода для N MessageItems на заголовок?

StreamBuilder<QuerySnapshot> buildByDateFb(
    String documentRef, GlobalKey<ScaffoldState> scaffoldState) {
  return StreamBuilder<QuerySnapshot>(
    stream: Firestore.instance
        .collection("schedule")
        .document(documentRef.toLowerCase())
        .collection("by_date")
        .orderBy("day")
        .orderBy("time")
        .snapshots(),
    builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
      if (!snapshot.hasData) return const Text('Loading...');
      final int messageCount = snapshot.data.documents.length;

      List<ListItem> items = new List<ListItem>();
      for(DocumentSnapshot item in snapshot.data.documents) {
        var heading = HeadingItem(item['day']);
        var row = MessageItem(item['className'], item['leadBy'], item['time']);
        items.add(heading);
        items.add(row);
      }

      return StickyList.builder(
        itemCount: messageCount,
        builder: (_, int index) {
          final item = items[index];

          if (item is HeadingItem) {
            return HeaderRow(
                child: _buildRowHeaderContents(item.day.toString())
            );
          } else if (item is MessageItem) {
            return RegularRow(
                child: ListTile(
                  leading: new CircleAvatar(
                    child: new Text(item.time.toString()),
                    radius: 27.0,
                  ),
                  title: new Text(item.className),
                  subtitle: Text(item.leadBy)
                )
            );
          }
        },
      );
    },
  );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...