Flutter - 容器宽度和高度适合父级

标签 flutter dart flutter-layout

我有一个 Card 小部件,其中包括 Column 和其他几个小部件。其中之一是 Container

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

在这里,如果我没有指定 widthheight 我会出错。但是,有没有办法让它们适合父元素?

编辑

完整代码:

return ListView(
      children: <Widget>[
        Center(
          child: Container(
            child: Card(
                margin: new EdgeInsets.all(20.0),
                child: new Container(
                  margin: EdgeInsets.all(20.0),
                  width: double.infinity,
                  child: Column(
                    children: <Widget>[
                      FormBuilder(
                        key: _fbKey,
                        autovalidate: true,
                        child: Column(
                          children: <Widget>[
                            FormBuilderDropdown(

                             onChanged: (t) {
                                setState(() {
                                  text = t.vrsta;
                                });
                              },
                              validators: [FormBuilderValidators.required()],
                              items: user.map((v) {
                                return DropdownMenuItem(
                                    value: v,
                                    child: ListTile(
                                      leading: Image.asset(
                                        'assets/img/car.png',
                                        width: 50,
                                        height: 50,
                                      ),
                                      title: Text("${v.vrsta}"),
                                    ));
                              }).toList(),
                            ),
                          ],
                        ),
                      ),
                      Container(child: _renderWidget()),
                      text.isEmpty
                          ? Container()
                          : RaisedButton(
                              child: Text("Submit"),
                              onPressed: () {
                                _fbKey.currentState.save();
                                if (_fbKey.currentState.validate()) {
                                  print(_fbKey.currentState.value.toString());
                                  print(formData.startLocation);
                                  getAutocomplete();
                                }
                              },
                            )
                    ],
                  ),
                )),
          ),
        ),
      ],
    );
  }

最佳答案

只需将容器的 heightwidth 属性设置为 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]),
                    ),
                  );
                },
              )),
        ),
      ],
    );
  }

关于Flutter - 容器宽度和高度适合父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57747880/

相关文章:

flutter - Flutter文本字段onChanged-检测最后键入的文本是否是标记句柄 '@mention'

Flutter,如何设置最大高度以列出 View 项目

Flutter:如何在 Flutter 中使用 Switch 更改主题 - 我已经使用 Provider 实现了此浅色和深色主题,但无法使用 switch 进行更改

flutter - 如何在 Flutter 中构建芯片输入字段?

image - 如何使用 ui.Image 作为 ImageProvider 数据源

flutter - Flutter DropDownMenu:初始化异步默认值

android - 从图片中选择主色

flutter - 如何查看特定版本的 Flutter API 网站?

flutter - child : and children: property in Flutter? 和有什么区别

flutter - 生成应用时出现“Another exception was thrown: Invalid argument(s)”错误