Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.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
Dart 如何在Flatter中的listview.builder中的索引处设置小部件的状态_Dart_Flutter - Fatal编程技术网

Dart 如何在Flatter中的listview.builder中的索引处设置小部件的状态

Dart 如何在Flatter中的listview.builder中的索引处设置小部件的状态,dart,flutter,Dart,Flutter,我在流生成器中有这个listview.builder。在listview中,我在每个索引的容器中都有一个按钮和循环进度指示器,现在我只想在按下按钮时显示该特定索引中的循环指示器 我尝试使用布尔值来隐藏和显示指示器。然而,我的问题是,当每次尝试使指示器可见时,它们都变得可见,这不是我想要的。如何实现这一点?您应该将每个列表项构建为一个单独的小部件,具有自己的逻辑和状态,这样您就可以为每个项拥有不同的布尔状态属性。这是一个示例,演示如何在listview构建器中使用管理自己状态的小部件 class

我在流生成器中有这个listview.builder。在listview中,我在每个索引的容器中都有一个按钮和循环进度指示器,现在我只想在按下按钮时显示该特定索引中的循环指示器


我尝试使用布尔值来隐藏和显示指示器。然而,我的问题是,当每次尝试使指示器可见时,它们都变得可见,这不是我想要的。如何实现这一点?

您应该将每个列表项构建为一个单独的小部件,具有自己的逻辑和状态,这样您就可以为每个项拥有不同的布尔状态属性。

这是一个示例,演示如何在listview构建器中使用管理自己状态的小部件

class MainClass extends StatefulWidget {
  @override
  _MainClassState createState() => _MainClassState();
}

class _MainClassState extends State<MainClass> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Column(
        children: <Widget>[
          ListView.builder(
           // itemCount: ,
            itemBuilder: (context,index){
                return HoldNewStateOf(
                  descriptions: "Description From List",
                  index: index,
                  name: "Name From List",
                );
            },
          )
        ],
      ),
    );
  }
}



class HoldNewStateOf extends StatefulWidget {
final name;
final descriptions;
final index;

HoldNewStateOf({
this.name,
this.descriptions,
this.index,
});
  @override
  _HoldNewStateOfState createState() => _HoldNewStateOfState();
}

class _HoldNewStateOfState extends State<HoldNewStateOf> {
  @override
  Widget build(BuildContext context) {
    return Container(
      child: Column(
        children: <Widget>[
          Text("Name: ${widget.name}"),
           Text("Description: ${widget.descriptions}"),
            Text("Current Index: ${widget.index}"),
        ],
      ),
    );
  }
}

谢谢对于后来的任何人来说,这是helpful@Norbert你有这个解决方案的链接吗?我正在周而复始地试图找到一种方法来检查一个状态,显示一个图标,并根据一个图标更新同一个图标condition@FilipeOS我已经添加了一个答案来演示这一点。所以,我必须为我的itemBuilder提供一个单独的小部件,以便根据每个项目的不同规则拥有不同的状态/图标?非常感谢。