Flutter-当同级是灵活的时,展开不会占用所有可用空间

时间:2019-08-21 23:04:08

标签: flutter flutter-layout

问题图像,显示为彩色矩形

SNAP PROBLEM

我希望Column的第一个子元素是Flexible,第二个要占据整个剩余空间。显然,这不起作用。

我现在知道这是预期的行为。我将不胜感激。

我尝试在第一个孩子上使用FittedBox而不是Flexible,但是它没有用,因为第一个孩子的内容具有无限宽度。

SizedBox(
  height: 300,
  width: 50,
  child: Container(
    color: Colors.black,
    child: Column(
      mainAxisSize: MainAxisSize.min,
      children: <Widget>[
        Flexible(
          child: Container(
            height: 100,
            color: Colors.red,
          ),
        ),
        Expanded(
          child: Container(
            color: Colors.blue,
          ),
        ),
      ],
    ),
  ),
);

我要使第一个孩子(即TextField)具有柔韧性,以便如果高度太小,则不会出现难看的黄黑溢出条。

更新

下图显示了我真正想做的事,但由于第一个孩子不灵活,因此出现了溢出问题。

what i wants

显示当我使用Flexible时会发生什么。

snap

我正在使用AnimatedContainer更改高度。我宁愿不要使用SizeTransition。

1 个答案:

答案 0 :(得分:0)

只需将您的代码替换为下一个代码即可(弯曲比可以调整为正确的代码):

SizedBox(
  height: 300,
  width: 50,
  child: Container(
    color: Colors.black,
    child: Column(
      mainAxisSize: MainAxisSize.min,
      children: <Widget>[
        Flexible(
          flex:1
          child: Container(
            height: 100,
            color: Colors.red,
          ),
        ),
        Flexible(
          flex:10
          child: Container(
            color: Colors.blue,
          ),
        ),
      ],
    ),
  ),
);