这是我的代码,我创建了一个 ExpansionTile
并且它有一个子 TextFormField
。
import 'package:flutter/material.dart';
class OrderCreatePage extends StatefulWidget {
@override
_OrderCreatePageState createState() => _OrderCreatePageState();
}
class _OrderCreatePageState extends State<OrderCreatePage> {
String _userID;
TextEditingController _controllerl;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: new Text("Create"),
),
body: ExpansionTile(
title: Text("Create"),
children: <Widget>[
TextFormField(
decoration: InputDecoration(
labelText: "User ID",
icon: Icon(Icons.face),
),
validator: (val) {},
controller: _controllerl,
onSaved: (val) => _userID = val,
)
],
),
);
}
}
每当我在 TextFormField
中输入内容并折叠 ExpansionTile
时,TextFormField
中的数据都会丢失。我正在使用这种类型的 UI,因为我必须创建一个包含很多细节的大表单。如果没有ExpansionTile
,那么用户必须滚动很长一段距离。
最佳答案
正如 - @pskink 所提到的
在你的代码中添加 TextEditingController _controllerl;
:
@override
void initState() {
super.initState();
_controllerl = TextEditingController();
}
所以你的代码看起来像:
class _OrderCreatePageState extends State<OrderCreatePage> {
String _userID;
TextEditingController _controllerl;
@override
void initState() {
super.initState();
_controllerl = TextEditingController();
}
@override
Widget build(BuildContext context) {
return Scaffold(
....
......
关于dart - 当 ExpansionTile 在 Flutter 中崩溃时,ExpansionTile 内的 TextFormField 会丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53535852/