需要幫忙。我正在使用 Firestore 對串列進行排序,但是當我添加資料時,它總是在ListView.separated. 如何讓新資料不顯示在底部,而是顯示在頂部?據我了解,您需要使用該reverse命令,但您可以準確指出在哪里以及如何正確。
firestore_repo
Query<Map<String, dynamic>> getMainCollection() {
FirebaseFirestore firestore = FirebaseFirestore.instance;
return firestore.collection('notes').orderBy('date');
}
list_note
child: ListView.separated(
physics: const BouncingScrollPhysics(),
padding: const EdgeInsets.all(16),
separatorBuilder: (context, index) => Container(height: 5),
itemCount: widget.snapshot.data!.docs.length,
itemBuilder: (context, index) {
QueryDocumentSnapshot<Object?> documentSnapshot =
widget.snapshot.data!.docs[index];
return Dismissible(
key: Key(documentSnapshot.id),
direction: DismissDirection.endToStart,
uj5u.com熱心網友回復:
將此行添加到您的ListView.separated:
reverse: true,
所以代碼是:
child: ListView.separated(
reverse: true,
physics: const BouncingScrollPhysics(),
padding: const EdgeInsets.all(16),
separatorBuilder: (context, index) => Container(height: 5),
itemCount: widget.snapshot.data!.docs.length,
itemBuilder: (context, index) {
QueryDocumentSnapshot<Object?> documentSnapshot =
widget.snapshot.data!.docs[index];
return Dismissible(
key: Key(documentSnapshot.id),
direction: DismissDirection.endToStart,
uj5u.com熱心網友回復:
嘗試這個:
final reveredList = widget.snapshot.data!.docs.reversed.toList();
然后ListView像這樣使用它:
child: ListView.separated(
physics: const BouncingScrollPhysics(),
padding: const EdgeInsets.all(16),
separatorBuilder: (context, index) => Container(height: 5),
itemCount: reveredList.length,
itemBuilder: (context, index) {
QueryDocumentSnapshot<Object?> documentSnapshot =
reveredList[index];
return Dismissible(
key: Key(documentSnapshot.id),
direction: DismissDirection.endToStart,
uj5u.com熱心網友回復:
除了ListView像其他人顯示的那樣在 UI/ 中反轉資料之外,您還可以告訴 Firestore 以相反的順序回傳資料。為此,請將您的orderBy呼叫更改為:
return firestore.collection('notes').orderBy('date', descending: true);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/445208.html
