我有一个列表,显示从数据库中选择的所有数据。现在我想实现一个条件来仅选择和显示当前日期时间的数据列表。
示例:显示一个列表,其中 List.year = DateTime().year
。
我应该如何编码来制作类似的东西?
class CustomListView extends StatelessWidget {
final List<Spacecraft> spacecrafts;
CustomListView(this.spacecrafts);
Widget build(context) {
return ListView.builder(
itemCount: spacecrafts.length,
itemBuilder: (context, int currentIndex) {
return createViewItem(spacecrafts[currentIndex], context);
},
);
}
Widget createViewItem(Spacecraft spacecraft, BuildContext context) {
var itemDate = spacecraft.startDate;
var currentDate = new DateTime.now() ;
return new ListTile(
.....
最佳答案
您必须过滤列表,无论是从数据库获取列表还是使用where
,如下所示:
class FilteredListView extends StatelessWidget {
final int year;
final List<Spacecraft> filteredSpacecrafts;
CustomListView(List<Spacecraft> allSpacecrafts, this.year) :
filteredSpacecrafts = allSpacecrafts.where(
(spacecraft) => spacecraft.year == year).toList();
Widget build(context) {
return ListView.builder(
itemCount: filteredSpacecrafts.length,
itemBuilder: (context, int currentIndex) {
return createViewItem(filteredSpacecrafts[currentIndex], context);
},
);
}
...
关于flutter - 如何在 flutter 中显示有条件的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57409383/