firebase - 如何在 Flutter 中手动分配 Listview.builder 的第一个元素?
问题描述
我有一个 Flutter 应用程序,它在 Listview.builder 的卡片上显示事件(存储在 Cloud Firestore 中)。我有一个特定的事件,足球。它有自己的特殊卡片。列表中可以有多个常规赛事,但只有一项足球赛事。我想将此足球赛事显示在列表顶部,作为第一张卡片。我怎样才能做到这一点?
到目前为止我的代码:
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:fociapp/model/events.dart';
import 'package:fociapp/ui/event_card.dart';
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return StreamBuilder(
stream: Firestore.instance.collection("events").snapshots(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
return snapshot.hasData
? Container(
color: Colors.grey[850],
child: ListView.builder(
itemCount: snapshot.data.documents.length,
itemBuilder: (BuildContext context, int index) {
DocumentSnapshot events = snapshot.data.documents[index];
Event event = Event(
events["eventName"],
events["startTime"],
events["coverImageUrl"],
events["location"],
events["description"]);
return EventCard(event);
},
),
)
: Center(
child: CircularProgressIndicator(),
);
});
}
}
Event 是来自 Firestore 的数据的模型类,EventCard 是小部件,它将数据显示在卡片中。
解决方案
只需将 ItemCount 加一即可。如果索引为 0,则在您的 ItemBuilder 中返回 Football-Card,如果不返回您的普通卡(索引 - 1)。
像这样:
ListView.builder(
itemCount: snapshot.data.documents.length + 1,
itemBuilder: (BuildContext context, int index) {
if(index == 0) {
// return Football-Card
} else {
DocumentSnapshot events = snapshot.data.documents[index - 1];
Event event = Event(
events["eventName"],
events["startTime"],
events["coverImageUrl"],
events["location"],
events["description"]);
return EventCard(event);
}
},
),
推荐阅读
- node.js - 我无法为节点 js 添加环境变量
- python - 如何编写我的代码以使其不超过时间限制?
- python - 当我运行代码时,我的所有复选框都被选中。我该如何停止?
- c - 高效的内存分配和释放问题
- flutter - 当我添加 firebase_dynamic_links 插件时,我在 flutter > File 'com.android.builder.files.ZipCentralDirectory@fa121b8' 中得到了这个错误
- c# - 数据库不更新 C#
- php - Kotlin io 套接字永远不会到达后端
- google-app-engine - 将 App Engine & Flask & SQLAlchemy 连接到 Cloud Sql
- python - 根据 DF 的特定行执行计算
- python - Python 生成器:产量字典