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_Flutter Layout - Fatal编程技术网

Flutter 颤振-容器宽度和高度适合母体

Flutter 颤振-容器宽度和高度适合母体,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,我有一个卡片小部件,它包括列和其他几个小部件。其中之一是容器 Widget _renderWidget() { return Column( children: <Widget>[ Visibility( visible: _isVisible, child: Container( width: 300, height: 200,

我有一个
卡片
小部件,它包括
和其他几个小部件。其中之一是
容器

Widget _renderWidget() {
    return Column(
      children: <Widget>[
        Visibility(
          visible: _isVisible,
          child: Container(
              width: 300,
              height: 200,
              decoration:
                  BoxDecoration(border: Border.all(color: Colors.grey)),
              child: ListView.builder(
                itemCount: titles.length,
                itemBuilder: (context, index) {
                  return Card(
                    child: ListTile(
                      leading: Icon(icons[index]),
                      title: Text(titles[index]),
                    ),
                  );
                },
              )),
        ),
      ],
    );
  }

您正在
列中使用
列表视图
,因此需要在
容器中指定高度
,以防止出现错误

最好的方法是使用
扩展的
灵活的
作为
列表视图的父级

Expanded(
  child: ListView.builder(...)
)
更新:

Widget _renderWidget() {
  return Column(
    children: <Widget>[
      Visibility(
        visible: _isVisible,
        child: Expanded(
          child: ListView.builder(
            itemCount: titles.length,
            itemBuilder: (context, index) {
              return Card(
                child: ListTile(
                  leading: Icon(icons[index]),
                  title: Text(titles[index]),
                ),
              );
            },
          ),
        ),
      ),
    ],
  );
}
Widget\u renderWidget(){
返回列(
儿童:[
可见度(
可见:_是可见的,
儿童:扩大(
子项:ListView.builder(
itemCount:titles.length,
itemBuilder:(上下文,索引){
回程卡(
孩子:ListTile(
前导:图标(图标[索引]),
标题:文本(标题[索引]),
),
);
},
),
),
),
],
);
}

只需将容器的
高度
宽度
属性设置为
double.infinity

解决方案代码:

Widget _renderWidget() {
    return Column(
      children: <Widget>[
        Visibility(
          visible: _isVisible,
          child: Container(
              width: double.infinity,
              height: double.infinity,
              decoration:
                  BoxDecoration(border: Border.all(color: Colors.grey)),
              child: ListView.builder(
                itemCount: titles.length,
                itemBuilder: (context, index) {
                  return Card(
                    child: ListTile(
                      leading: Icon(icons[index]),
                      title: Text(titles[index]),
                    ),
                  );
                },
              )),
        ),
      ],
    );
  }
Widget\u renderWidget(){
返回列(
儿童:[
可见度(
可见:_是可见的,
子:容器(
宽度:double.infinity,
高度:双无限,
装饰:
BoxEdition(边框:border.all(颜色:Colors.grey)),
子项:ListView.builder(
itemCount:titles.length,
itemBuilder:(上下文,索引){
回程卡(
孩子:ListTile(
前导:图标(图标[索引]),
标题:文本(标题[索引]),
),
);
},
)),
),
],
);
}

但是我得到了一个错误:RenderFlex子项具有非零flex,但传入的高度约束是无限的。它对我有效,我测试了你的代码,确保你删除了
容器
widget它仍然不起作用。我有Container-Column-Container-Expanded-ListView。同样,我也不确定它为什么不起作用,你能发布完整的代码吗?谢谢你更新它,但是当前的帖子有很多我无法访问的变量。您是否可以再次更新它,使其易于复制?
Widget _renderWidget() {
    return Column(
      children: <Widget>[
        Visibility(
          visible: _isVisible,
          child: Container(
              width: double.infinity,
              height: double.infinity,
              decoration:
                  BoxDecoration(border: Border.all(color: Colors.grey)),
              child: ListView.builder(
                itemCount: titles.length,
                itemBuilder: (context, index) {
                  return Card(
                    child: ListTile(
                      leading: Icon(icons[index]),
                      title: Text(titles[index]),
                    ),
                  );
                },
              )),
        ),
      ],
    );
  }