Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter itemBulder跳转到下一个项目_Flutter_Dart - Fatal编程技术网

Flutter itemBulder跳转到下一个项目

Flutter itemBulder跳转到下一个项目,flutter,dart,Flutter,Dart,我是一个新手程序员 在itemsbuilder中,如何跳转到下一个索引项 return ListView.builder( itemCount: s.data.length, itemBuilder: (_, index){ if(s.data[index]["count"].toString() == "0") return new Text(''); image1 = s.data[index]["imag

我是一个新手程序员

itemsbuilder
中,如何跳转到下一个索引项

      return ListView.builder(
        itemCount: s.data.length,
        itemBuilder: (_, index){
          if(s.data[index]["count"].toString() == "0") return new Text('');

          image1 = s.data[index]["image"];
          if(image1 == null){
            image2 = imageSrc;
          }else{
            image2 = s.data[index]["image"]["src"];
            print(s.data[index]);
          }
我曾经

if(s.data[index]["count"].toString() == "0") return new Text('');

但是,项目之间的空间已创建。

我假设您想跳过某些项目。如果您使用的是Dart 2.3+,则可以使用
collection If
collection for
来执行此操作。但是,在您的用例中,最简单的方法是将
Text(“”)
替换为
const SizedBox()
。小部件树中将有一个小部件,但高度/宽度为0时,它不会显示在屏幕上并占用任何空间,并且作为
const
小部件,它不应重建。

假设我理解正确,您希望跳过
count
为零的项目的构建

保留该代码可以返回一个
SizedBox.shrink()
,而不是
Text(“”)
,后者是一个零大小的容器

更好的方法是过滤
s.data
,并在
ListView.builder
中使用它:

List<?> filteredData = s.data.where((item) => item["count"].toString() != 0).toList();
然后将
ListView.builder中的
s.data
替换为
filteredData
,尝试返回一个不占用任何空间的or

 if(s.data[index]["count"].toString() == "0") return Container(width: 0,height: 0,);

 if(s.data[index]["count"].toString() == "0") return Container(width: 0,height: 0,);