我有这个代码,在其中我有一个文本和一个文本字段,如何使文本以与被动方式相同的文本字段填充。
这种尝试但没有得到结果。
class _MyHomePageState extends State<MyHomePage> {
TextEditingController controller = TextEditingController();
String aMostrar = "";
@override
Widget build(BuildContext context) {
controller.text = "";
controller.addListener(() {
aMostrar = controller.text;
});
return Scaffold(
appBar: AppBar(
title: Text("TextField Example"),
),
body: Container(
margin: EdgeInsets.all(20.0),
child: Center(
child: Column(
children: <Widget>[
TextField(
controller: controller,
),
Text(aMostrar),
],
)),
),
);
}
}
您不需要从控制器获取文本值,因为TextField
已经提供了onChanged
。
在onChange
你需要打电话给setState
。
如下所示:
TextField(
onChanged: (value) {
setState(() {
aMostrar = value;
});
},
),
如果你正在使用TextFormField
,那么你需要在setState
的监听器内调用controller
。
如下所示:
controller.addListener(() {
setState(() {
aMostrar = controller.text;
});
});