【问题标题】:How to set the state of a widget at an index in a listview.builder in flutter如何在颤动的listview.builder中的索引处设置小部件的状态
【发布时间】:2018-11-25 18:39:32
【问题描述】:

我在流构建器中有这个 listview.builder。在列表视图中,我在每个索引的容器中都有一个按钮和圆形进度指示器,现在我想仅在按下按钮时在该特定索引处显示圆形指示器。

我尝试使用布尔值来隐藏和显示指示器。但是我的问题是,当每次尝试使指标可见时,所有指标都变得可见,这不是我想要的。我怎样才能做到这一点?

【问题讨论】:

    标签: dart flutter


    【解决方案1】:

    这是一个示例,用于演示如何在列表视图构建器中使用管理其自身状态的小部件。

    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}"),
            ],
          ),
        );
      }
    }
    

    【讨论】:

    • 所以,我必须为我的 itemBuilder 有一个单独的小部件,以便根据每个项目的规则有一个不同的状态/图标?谢谢!
    【解决方案2】:

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

    【讨论】:

    • 谢谢。仅供以后的任何人使用,此The widget manages its own state 很有帮助
    • @Norbert 你有这个解决方案的链接吗?我正在兜圈子,试图找到一种方法来检查状态、显示图标并根据条件更新相同的图标
    • @FilipeOS 我已经添加了一个答案来证明这一点。
    猜你喜欢
    • 2021-02-16
    • 2020-08-06
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    • 2019-07-13
    相关资源
    最近更新 更多