如何在按钮上方移动文本字段,该按钮随着键盘颤动而向上移动
How to move textfields above a button which moves up with keyboard in flutter
我有一个与屏幕底部对齐的按钮,这样每当键盘打开时,该按钮就会保持在键盘上方的位置。此按钮隐藏了包含在 singlechildscrollview 内的列中的文本字段。
(文本字段随键盘向上移动。按钮堆叠在列上方是导致问题的原因)
Image before opening keyboard
Image after opening keyboard
我尝试在 Padding 小部件中换行并提供底部填充,但结果仍然相同。请建议一种将文本字段定位在按钮上方的方法。
注:第一次发布。如有错误请见谅。谢谢
return SafeArea(
child: Stack(
fit: StackFit.expand,
children: [
SingleChildScrollView(
child: Container(
child: Column(
children: [
Container(
color: Colors.deepOrange,
width: double.maxFinite,
height: height * 0.3,
),
Container(
color: Colors.black,
width: double.maxFinite,
height: height * 0.56,
child: SingleChildScrollView(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Utils().colSpacer20,
TextBox(hint: "name", editingController: _controller),
Utils().colSpacer20,
TextBox(hint: "name", editingController: _controller),
Utils().colSpacer20,
TextBox(hint: "name", editingController: _controller),
Utils().colSpacer20,
TextBox(hint: "name", editingController: _controller),
Utils().colSpacer20,
TextBox(hint: "name", editingController: _controller)
],
),
),
),
],
),
),
),
Positioned(
bottom: 0,
left: 0,
right: 0,
child: FlatButton(
color: Colors.blue[900],
onPressed: () {},
child: Text(
"Save",
style: TextStyles().subTextStyleWhite,
),
minWidth: double.maxFinite,
height: height * 0.1,
),
)
],
),
);
编辑:TextField 小部件的 scrollPadding 属性 解决了该问题。
谢谢@Anitesh Reddy。
将 padding/margin 或 sizedBox( height:height*0.12 ) 保留在列的底部,以便 positioned 中的小部件将向下移动并离开 space.
使用滚动填充属性
我有一个与屏幕底部对齐的按钮,这样每当键盘打开时,该按钮就会保持在键盘上方的位置。此按钮隐藏了包含在 singlechildscrollview 内的列中的文本字段。
(文本字段随键盘向上移动。按钮堆叠在列上方是导致问题的原因)
Image before opening keyboard
Image after opening keyboard
我尝试在 Padding 小部件中换行并提供底部填充,但结果仍然相同。请建议一种将文本字段定位在按钮上方的方法。
注:第一次发布。如有错误请见谅。谢谢
return SafeArea(
child: Stack(
fit: StackFit.expand,
children: [
SingleChildScrollView(
child: Container(
child: Column(
children: [
Container(
color: Colors.deepOrange,
width: double.maxFinite,
height: height * 0.3,
),
Container(
color: Colors.black,
width: double.maxFinite,
height: height * 0.56,
child: SingleChildScrollView(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Utils().colSpacer20,
TextBox(hint: "name", editingController: _controller),
Utils().colSpacer20,
TextBox(hint: "name", editingController: _controller),
Utils().colSpacer20,
TextBox(hint: "name", editingController: _controller),
Utils().colSpacer20,
TextBox(hint: "name", editingController: _controller),
Utils().colSpacer20,
TextBox(hint: "name", editingController: _controller)
],
),
),
),
],
),
),
),
Positioned(
bottom: 0,
left: 0,
right: 0,
child: FlatButton(
color: Colors.blue[900],
onPressed: () {},
child: Text(
"Save",
style: TextStyles().subTextStyleWhite,
),
minWidth: double.maxFinite,
height: height * 0.1,
),
)
],
),
);
编辑:TextField 小部件的 scrollPadding 属性 解决了该问题。 谢谢@Anitesh Reddy。
将 padding/margin 或 sizedBox( height:height*0.12 ) 保留在列的底部,以便 positioned 中的小部件将向下移动并离开 space.
使用滚动填充属性