【发布时间】:2020-09-26 18:53:25
【问题描述】:
有一个带有底部模式表的简单结构,其中包含一个用于将文本添加到列表中的输入文本字段和一个用于提交值的按钮。
当文本字段获得焦点时,它会自动打开覆盖提交按钮的软键盘。 当我关闭键盘以按下按钮时,文本字段中的值仍然可见,但发送的值为空。 如果我在不关闭键盘的情况下按下按钮,则正确发送值。
问题是:我怎样才能关闭键盘并在按下提交按钮后仍然能够发送键入的值?
代码如下:
1) 在主屏幕上,浮动操作按钮显示模态底部表单。
return Scaffold(
floatingActionButton: FloatingActionButton(
onPressed: () {
showModalBottomSheet(
context: context,
builder: (context) => AddTaskScreen(),
},
2) 在 AddTaskScreen 类上,有一个 Column,其中包含容器内模态底部工作表的内容。
Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Text(
'Add your next Task',
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.lightBlueAccent,
fontSize: 20,
fontWeight: FontWeight.w400,
),
),
TextField(
textAlign: TextAlign.center,
autofocus: true,
onChanged: (value) {
newTaskTitle = value;
},
),
FlatButton(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular(10),
),
),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
'ADD',
style: TextStyle(
color: Colors.white,
fontSize: 25,
),
),
),
color: Colors.lightBlueAccent,
onPressed: () {
print(newTaskTitle);
},
),
],
),
),
在这个简化版本中,TextField 中的值会在按下按钮时打印在控制台中。如果我按下按钮而不隐藏键盘,它可以正常工作;如果我隐藏键盘,它会传递一个空值。
提前感谢您的帮助。
【问题讨论】:
标签: android ios flutter mobile