【发布时间】:2020-02-12 21:35:51
【问题描述】:
我有一个包含 Expand(LayoutBuilder(Widget that can change vertical size by the user))) 的 Row 和右侧的 Column ,就像代码一样。我希望列的高度等于左侧小部件的高度(垂直长度)。列高也应该能够根据左侧小部件的高度进行更改。
Scaffold(
backgroundColor: Colors.blue,
body: Center(
child: Row(children: <Widget>[
Expanded(
child: Container(
color: Colors.grey,
child: LayoutBuilder(builder: (context, size) {
return TextField(
maxLines: null,
);
}),
),
),
Container(
color: Colors.red,
child: Column(
children: <Widget>[
InkWell(
child: Icon(Icons.keyboard_arrow_up),
onTap: () {},
),
InkWell(
child: Icon(Icons.keyboard_arrow_down),
onTap: () {},
),
],
),
)
]),
),
);
看起来与此相似。我的第一个解决方案是以某种方式获取 LayoutBuilder 高度并将其用于列的容器。使其外观和行为与描述相同的任何其他更好的方法都可以。
【问题讨论】:
-
您可以在容器上放置一个对齐属性来保存该列,以使其最大程度地扩展。还可以使用 mainAxisSize: MainAxisSize.max 属性让列完全展开。利用列中的对齐属性让孩子们从那里做他们需要的事情。
-
@AdrianMurray 我不确定我是否理解您的帮助,请随时提交示例代码作为完整答案。