class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
bool _isEnable = false;
TextEditingController _controller =
TextEditingController(text: "Festive Leave");
@override
Widget build(BuildContext context) {
return Scaffold(
body: Row(
children: <Widget>[
Container(
width: 100,
child: TextField(
controller: _controller,
enabled: _isEnable,
),
),
IconButton(
icon: Icon(Icons.edit),
onPressed: () {
setState(() {
_isEnable = true;
});
})
],
),
);
}
}
代码运行成功,我得到了输出,但重新加载后,值更改为旧的自身,并且编辑部分在编辑后没有恢复正常。 有人请帮我让文本在编辑后恢复到第一个状态,并且即使在重新加载后也需要保留编辑的值
热重载仅重建代码更改的部分。 例如,尝试编辑 _controller 的名称或更改其值,热重载只会重新加载该部分。 如果您编辑了 IconButton 或(例如)只有图标将被更改,而不会更改其他内容。
因此,在热重新加载后,文本不应返回“节日假期”,也许您的意思是热重启,这会重建应用程序并恢复所有内容。
如果您希望 TextField 恢复原样(未启用),那么您可以执行以下操作:
setState(() {
_isEnable = !_isEnable;
});
因此,当您按下图标按钮时,它将切换文本字段启用。
希望有帮助。