颤动柱不会扩展

时间:2018-03-15 22:47:48

标签: dart flutter

我是Flutter的新手,但已经喜欢了。 问题是: 为什么柱子没有在整个高度上扩展?

code is on gist.github

screenshot

5 个答案:

答案 0 :(得分:5)

Column窗口小部件非常灵活 - 它会尝试占用所需的空间,但不会更多。如果您希望它占用所有可用空间,请将其包装在Expanded小部件中。

createChildren() {
  return [
    Image.network(
      testImg,
      height: imageSize,
      width: imageSize,
    ),
    Padding(padding: EdgeInsets.only(left: 16.0)),
    Expanded(child:
      Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        children: [
          boldText("Some title"),
          Text("Address"),
          Text("Description")
        ],
      ),
    ),
  ];
}

答案 1 :(得分:2)

不要在 Column 内使用 flex=1,这里你可以看到例子

children: [
    MyWidget(),
    Expanded(
      child: MyWidget(),
    ),
    MyWidget(),
  ],

答案 2 :(得分:1)

使用CrossAxisAlignment.stretch对我有用:

   Column(
      crossAxisAlignment: CrossAxisAlignment.stretch,
      children: [
          Text("Some title"),
          Text("Address"),
          Text("Description")
      ],
   ),

答案 3 :(得分:0)

使用MainAxisSize.max

将行换行
Row(
        mainAxisSize: MainAxisSize.max,
        children: <Widget>[
          Column(
            children: <Widget>[
              _someWidget(),
              _someWidget(),
              _someWidget(),
            ],
          ),
        ],
      )

答案 4 :(得分:0)

根据您的布局,我假设您的 Column 嵌套在 Row 内。用 Row 包裹您的 IntrinsicHeight,您的 Column 将自动扩展其高度以与 Row 的最高孩子相同:

IntrinsicHeight(
                child: Row(
                  children: [
                    Container(width: 40, height: 40, color: Colors.blue),
                    // tallest child
                    Container(width: 40, height: 60, color: Colors.blue),
                    // height will be 60
                    Column(
                      ...
                    ),

                  ],
                ),
              )