F.M*_*.M. 2 flutter flutter-layout
我有一个列和其中的三个元素。我将 mainAxisAlignment 设置为 MainAxisAlignment.spaceBetween,以便第一个元素位于我的应用程序顶部。第二个在中间,第三个在底部。现在我想将其包装在滚动视图中,以便如果列的内容比视图高,则可以滚动它。例如,当键盘弹出时就会发生这种情况。
我的代码看起来有点像这样:
Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Element1(),
Element2(),
Element3(),
]
)
Run Code Online (Sandbox Code Playgroud)
Column 将其高度扩展到整个屏幕。这也是我想要的。
但现在如果我将它包装在 SingelChildScrollView 中,它会缩小到最小内容高度。:(
SingleChildScrollView(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Element1(),
Element2(),
Element3(),
]
),
)
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以使列继续扩展到屏幕的整个视图高度,并且一旦其内容高于屏幕高度就可以滚动?
您应该能够通过使用来做到这一点ConstrainedBox,LayoutBuilder这将强制Column采用最大可用高度
LayoutBuilder(
builder: (context, constraints) => SingleChildScrollView(
child: ConstrainedBox(
constraints: BoxConstraints(
minHeight: constraints.maxHeight,
),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Element1(),
Element2(),
Element3(),
]),
),
),
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
947 次 |
| 最近记录: |