如何将小部件放置在SingleChildScrollView的底部?
我需要使用SingleChildScrollView
才能使用keyboard_actions,以便可以在iOS的键盘上方放置一个“完成”按钮(此刻使用数字键盘)
在SingleChildScrollView
将有一列作为一个孩子,然后一个按钮被放置在底部。我尝试过使用LayoutBuilder
来将高度提高到SingleChildScrollView
。
LayoutBuilder( builder: (BuildContext context, BoxConstraints viewportConstraints) {
return SingleChildScrollView(
child: ConstrainedBox(
constraints:
BoxConstraints(minHeight: viewportConstraints.maxHeight),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
mainAxisSize: MainAxisSize.max,
children: <Widget>[
Column(),
// Spacer() ?
FlatButton()
])));
});
我尝试将BoxConstraints
with与该maxHeight
属性一起使用,但是最终当键盘出现时,该小部件不会消失。
旁注:脚手架同时具有resizeToAvoidBottomInset
和resizeToAvoidBottomPadding
设置为true
(默认值)
回答:
问题SingleChildScrollView
在于shrikwrap
它是孩子。因此,要在两者之间使用自动尺寸小部件-
我们需要使用MediaQuery
来获取屏幕高度并SizedBox
展开- SingleChildScrollView
。
这里的按钮将在屏幕底部。
工作代码:
double height = MediaQuery.of(context).size.height; SingleChildScrollView(
child: SizedBox(
height: height,
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
mainAxisSize: MainAxisSize.max,
children: <Widget>[
Column(
children: <Widget>[
Text('Dummy'),
Text('Dummy'),
Text('Dummy'),
],
),
Spacer(),
FlatButton(
onPressed: () {},
child: Text('Demo'),
)
])),
)
以上是 如何将小部件放置在SingleChildScrollView的底部? 的全部内容, 来源链接: utcz.com/qa/428900.html