flutter - 如何在 flutter 中显示有条件的列表?

标签 flutter

我有一个列表,显示从数据库中选择的所有数据。现在我想实现一个条件来仅选择和显示当前日期时间的数据列表。

示例:显示一个列表,其中 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/

相关文章:

Flutter - 如何在 PageView Widget 中的页面之间传递数据?

android-studio - 我无法在 Android Studio 和 Flutter 中创建目录/文件夹,只能创建包

firebase - Flutter Firebase 远程配置类中没有虚拟方法 isDeveloperModeEnabled()Z .../FirebaseRemoteConfigSettings

dart - 有没有办法在 DefaultTabController 中添加监听器?

dart - Flutter:如果 View 已被处理,如何防止横幅广告显示

android - 在嵌套对象抖动中解析复杂的json

flutter - 如果我不给出高度或宽度,AnimatedContainer 大小不会产生动画

flutter - 如何根据日历中的选择在 18 岁以下时隐藏小部件

Flutter:键盘选项卡按钮在 TextFormField 中创建一个空格

firebase - Flutter 中如何获取、设置、更新和删除云 Firestore 中的数据?