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 颤振如何在规格列表视图中显示/隐藏容器_Flutter_Dart - Fatal编程技术网

Flutter 颤振如何在规格列表视图中显示/隐藏容器

Flutter 颤振如何在规格列表视图中显示/隐藏容器,flutter,dart,Flutter,Dart,我在ListView.builder中显示我的数据,问题是我需要在特定列表中显示/隐藏小部件,但它应用于所有列表 我的代码 ListView.builder( itemCount: 3, itemBuilder: (context, index) { return GestureDetector( onTap: () { print('show'); setStat

我在ListView.builder中显示我的数据,问题是我需要在特定列表中显示/隐藏小部件,但它应用于所有列表

我的代码

ListView.builder(
        itemCount: 3,
        itemBuilder: (context, index) {
          return GestureDetector(
            onTap: () {
              print('show');
              setState(() {
                showQty = !showQty;
              });
            },
            child: Column(
              children: [
                Text('Always'),
                showQty ? Text('onClick') : Container()
              ],
            ),
          );
   })

你可以看到我有两个文本。当showQty为true时,我显示的第二个文本工作正常,但问题是它在所有itemBuilder上的更改我只需要显示它现在正在单击的项目及其在所有项目上的应用。

因为您正在将单击应用于列表视图的所有项目。为了实现折叠和单击显示,您必须将bool应用于列表的特定索引。尝试如下

  List<bool> showQty=[];



@override
  void initState() {
    super.initState();
    for(int i=0;i<data.length;i++){
      showQty.add(false);
    }
  }

    void showHide(int i){
     setState((){
         showQty[i]=!showQty[i];
      });
    }

ListView.builder(
    itemCount: data.length,
    shrinkWrap:true,
    itemBuilder: (context, index) {
      return GestureDetector(
        onTap: () {
          print('show');
         showHide( index);
        },
        child: Column(
          children: [
            Text('Always'),
            showQty[index] ? Text('onClick') : Container()
          ],
        ),
      );
  }
)
List showQty=[];
@凌驾
void initState(){
super.initState();

对于(int i=0;i对于显示和隐藏小部件,您可以使用
可见性
小部件。 欲了解更多关于
希望能对您有所帮助。

但您定义了false 3次,我只举了itemCount为3的例子,如果itemCount的长度类似于itemCount:data.length,那么它是否有效?