如何使文本在 flutter 中与 Textfield 一起工作
How to make a text work reactive with a Textfield in flutter
我有这段代码,里面有一个文本和一个文本字段,我怎样才能让文本以反应方式与文本字段一起填写。
此尝试未得到结果。
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
,那么您需要在 controller
的侦听器中调用 setState
。
如下所示:
controller.addListener(() {
setState(() {
aMostrar = controller.text;
});
});
我有这段代码,里面有一个文本和一个文本字段,我怎样才能让文本以反应方式与文本字段一起填写。
此尝试未得到结果。
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
,那么您需要在 controller
的侦听器中调用 setState
。
如下所示:
controller.addListener(() {
setState(() {
aMostrar = controller.text;
});
});