如何解决Flutter / Dart-导航回带有文本字段的表单时如何保存状态?
当前,当用户填写TextField时,如果他们导航然后返回,则文本会丢失。返回后,如何使文本留在原地?
这是我正在使用的有状态小部件;
class _EditPageState extends State<EditPage> {
final _formKey = GlobalKey<FormState>();
String audiotitle;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Form(
key: _formKey,child: Container(
child: TextField(
decoration: new InputDecoration(
hintText: widget.oldaudiotitle,),keyboardType: TextInputType.text,onChanged: (titleText) {
setState(() {
this.audiotitle = titleText;
});
},);
}
}
我在做什么错了?
解决方法
您有两种方法:
- 存储文本字段的数据,并在init方法中设置数据 (根据您的要求使用sharedpreferences或任何其他数据库)
TextEditingController controller = TextEditingController(); @override void initState() { // TODO: implement initState // retrive the Data if(data != null) { controller = new TextEditingController(text: data); } }
或者如果第一个屏幕正在第二个屏幕中导航,而不仅仅是弹出该屏幕
Navigator.pop(context);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。