【发布时间】:2020-05-15 16:56:07
【问题描述】:
我有一个包含许多 TextFormField 的表单,它们在 ListView.builder 中动态加载,问题是我只想更改一个 TextFromField 的文本,但我使用 @987654325 更改了所有 TextFromField 的文本@ 这是因为我所有的 TextFormField 都使用同一个控制器,有没有办法改变一个 TextFormField 的文本,不管TextFormField 到底是什么?
非常感谢您的帮助。
这里是ListView.builder 和TextFormField:
class ListBuilder extends StatefulWidget {
final Preguntas preguntas;
final formKey;
ListBuilder({@required this.preguntas, this.formKey});
Preguntas preguntasGlobal = Preguntas();
@override
_ListBuilderState createState() => _ListBuilderState();
}
class _ListBuilderState extends State<ListBuilder> {
var textController = new TextEditingController();
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
SizedBox(height: 15.0),
ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: widget.preguntas.secciones[0].preguntas.length,
itemBuilder: (BuildContext context, int i){
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
TextFormField(
controller: textController,
decoration: InputDecoration(
errorStyle: TextStyle(fontFamily: "OpenSans-Regular", color: Color(0xffe81935)),
hintMaxLines: 500,
hintText: widget.preguntas.secciones[0].preguntas[i].respuestas[0].pregunta.descripcion,
hintStyle: TextStyle(fontFamily: "OpenSans-Regular", fontSize: 14.0),
),
onChanged: (value){}
),
],
);
}
),
],
);
}
}
【问题讨论】:
-
我相信这就是您正在寻找的答案Use dynamic TextField
-
必须要有控制器吗?您具体想通过控制器实现什么目标?