将约束框的大小调整为最大高度。 minHeight

时间:2019-06-01 17:59:25

标签: flutter flutter-layout

我有一个ConstrainedBox,其minHeight为50,maxHeight为200。CB包含一个容器,其自身为红色。

现在我有两种情况:

  • 我想使CB尽可能大(采用maxHeight)。我可以通过将CB粘贴到SizedBox.expand中来实现。

  • 我想使CB尽可能小(取minHeight)。因此,我需要SizedBox.expand的反义词。我该怎么办?

2 个答案:

答案 0 :(得分:0)

玩了一会儿之后,我发现了以下内容:

Widget build(BuildContext _) => Scaffold(
      backgroundColor: Colors.transparent,
      body: IntrinsicHeight(
          child: ConstrainedBox(
              constraints: BoxConstraints(minHeight: 50, maxHeight: 400),
              child: Container(color: Colors.yellow))));

将以50像素渲染该框,并且

Widget build(BuildContext _) => Scaffold(
      backgroundColor: Colors.transparent,
      body: Container(
          child: ConstrainedBox(
              constraints: BoxConstraints(minHeight: 50, maxHeight: 400),
              child: Container(color: Colors.yellow))));

将以400像素渲染该框。

因此,看起来IntrinsicHeight会将子级的大小调整为其minHeight,而仅将其放入容器将产生maxHeight

答案 1 :(得分:-1)

您可以使用:

  

约束:BoxConstraints.loose(Size(width,height)),

在给定的约束下,它将使您的小部件尽可能小。

例如,如果您给约束Size(100,100),孩子的w = 110,h =110。由于约束,小部件将为100 x 100。

另外,如果您给约束条件Size(100m 100),子级w = 50,h = 50,则小部件将为50 x 50。