我需要在串列視圖的末尾添加一個文本小部件。我根據我的需要想出了這個代碼片段。此代碼基于此和此代碼。
此代碼的問題是,它不可滾動。我怎樣才能解決這個問題?將小部件添加到 ListView 末尾的最佳方法是什么?
List<Widget> listItems = [];
int listItemCount = 0;
listItems.addAll(snapshot.data!.docs.map((DocumentSnapshot document) {
Map<String, dynamic> data = document.data()! as Map<String, dynamic>;
if (data['status'] == true) {
listItemCount ;
return ListTile(
title: Text(data['full_name']),
subtitle: Text(data['company']),
);
} else {
return SizedBox();
}
}).toList());
return ListView(children: <Widget>[
ListView(
shrinkWrap: true,
children: listItems,
),
(listItemCount > 0) ? Text('All Finish') : Text('Not available'),
]);
uj5u.com熱心網友回復:
為什么不在 的末尾添加一個磁貼listItems?像這樣的東西:
...
const finalTile = ListTile(
title: Text((listItemCount > 0) ? Text('All Finish') : Text('Not available')),
);
listItems.add(finalTile)
return ListView(children: <Widget>[
ListView(
shrinkWrap: true,
children: listItems,
),
,
]);
uj5u.com熱心網友回復:
它很簡單..檢查這個代碼片段
return ListView.builder
(
itemCount: listItems.length 1, // here is the trick, we are adding 1 for extra widget at bottom
itemBuilder: (BuildContext ctxt, int index) {
if (index < listItems.size - 1)
return new Text("List Item");
else
return new Text("Last Extra widget"); // This will be the extra widget at last
}
)
uj5u.com熱心網友回復:
使用 ListView.separated
ListView.separated(
itemCount: listItems.length,
separatorBuilder: (BuildContext context, int index) {
if(index == ListItems.length-1){
return Container(height: 50, color: Colors.red);
}
else {
return SizedBox();
}
},
itemBuilder: (BuildContext context, int index) {
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/317315.html
