我在我的应用程序中使用文本字段来编写注释,当用户键入文本并按下按钮时,应将文本写入数据库。但是,我有一个问题,当我编写文本然后按“完成”或从键盘返回时,文本消失,然后没有要添加的注释。是否有任何想法即使在按完或返回后仍将文本值保存在文本字段中? 预先感谢。
答案 0 :(得分:1)
不确定输入为何消失,但是可以使用TextEditingController
并将该控制器传递给TextField
。
然后使用TextField
访问controller.text
的值。
这是一个小例子
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
String databaseText;
TextEditingController controller = TextEditingController();
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: TextField(
controller: controller,
onEditingComplete: () {
databaseText = controller.text;
print(databaseText);
},
),
),
),
);
}
}
答案 1 :(得分:0)
String _text;
final formKey = GlobalKey<FormState>();
Form(
key: formKey,
child: Column(children: <Widget>[
TextFormField(
autocorrect: false,
decoration: InputDecoration(labelText: "Text:"),
onSaved: (str) => _text = str,
)
]));
然后只需将_text变量传递到参数中作为键值即可。
答案 2 :(得分:0)
尝试在InputDecoration中修改contentPadding。例如:
contentPadding: EdgeInsets.symmetric(horizontal: 2, vertical: 0)