Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.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_Flutter Layout - Fatal编程技术网

Flutter 颤振-扩展的不稳定性';当兄弟姐妹灵活时,不要占用所有可用空间

Flutter 颤振-扩展的不稳定性';当兄弟姐妹灵活时,不要占用所有可用空间,flutter,flutter-layout,Flutter,Flutter Layout,问题的图像,显示为彩色矩形 我希望列的第一个子级灵活,第二个子级占用整个剩余空间。显然,这是行不通的 我现在意识到这是预期的行为。我希望有一个解决办法 我尝试在第一个子项上使用FittedBox而不是Flexible,但它不起作用,因为第一个子项的内容具有无限的宽度 SizedBox( 身高:300, 宽度:50, 子:容器( 颜色:颜色,黑色, 子:列( mainAxisSize:mainAxisSize.min, 儿童:[ 灵活的( 子:容器( 身高:100, 颜色:颜色,红色, ), )

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

我希望列的第一个子级灵活,第二个子级占用整个剩余空间。显然,这是行不通的

我现在意识到这是预期的行为。我希望有一个解决办法

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

SizedBox(
身高:300,
宽度:50,
子:容器(
颜色:颜色,黑色,
子:列(
mainAxisSize:mainAxisSize.min,
儿童:[
灵活的(
子:容器(
身高:100,
颜色:颜色,红色,
),
),
扩大(
子:容器(
颜色:颜色,蓝色,
),
),
],
),
),
);
我想让第一个孩子(即文本字段)灵活,这样,如果高度太小,就不会有难看的黄黑色溢出条

更新:

下图显示了我真正想做的事情,但它存在溢出问题,因为第一个子项不灵活

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


我正在使用AnimatedContainer更改高度。如果可能的话,我不想使用SizeTransition。

只需用下一个代码替换您的代码即可(弹性比率可以调整为正确的):

SizedBox(
身高:300,
宽度:50,
子:容器(
颜色:颜色,黑色,
子:列(
mainAxisSize:mainAxisSize.min,
儿童:[
灵活的(
弹性:1
子:容器(
身高:100,
颜色:颜色,红色,
),
),
灵活的(
弹性:10
子:容器(
颜色:颜色,蓝色,
),
),
],
),
),
);

您应该从第一个容器(红色容器)中删除高度参数,然后放置the@karimtarek谢谢你的建议。我提供的代码简单地说明了我的问题。我已经用适当的例子更新了这个问题,说明了我真正想要实现的目标。我认为您只需要设置父容器的高度和宽度
Expanded
始终在任何
(当然,如果您不更改flex属性)@Rodolfoffranco上占用剩余空间,这也不起作用。我在GitHub上发现了同样的问题。到目前为止,还没有关于这个问题的其他报道。这一行为并非出人意料,正如雷米·罗塞莱在《经济学人》一书中的回答所理解的那样。
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,
          ),
        ),
      ],
    ),
  ),
);