我想在不键入的情况下更改值输入。例如,我有两个文本表单字段,当我在文本表单字段#1中键入1时,我希望文本表单字段#2中显示的值为2。我想改变值取决于其他输入值,然后显示它。我在努力,但没有工作。那么如何解决这个问题。请帮帮我!!!!!!!!!更新:我解决了这个问题。谢谢大家!!!
5m1hhzi41#
对于此任务,建议使用TextEditingController沿着TextFormField的onChanged回调函数。下面的示例清楚地说明了所需的方法。
TextEditingController
onChanged
class TextFormFieldDemo extends StatefulWidget { const TextFormFieldDemo({super.key}); @override State<TextFormFieldDemo> createState() => _TextFormFieldDemoState(); } class _TextFormFieldDemoState extends State<TextFormFieldDemo> { late final TextEditingController textField1Controller; late final TextEditingController textField2Controller; @override void initState() { super.initState(); textField1Controller = TextEditingController(); textField2Controller = TextEditingController(); } @override void dispose() { textField1Controller.dispose(); textField2Controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(), body: Column( children: [ TextFormField( controller: textField1Controller, onChanged: (value) { final double? val = double.tryParse(value); if (val != null) { textField2Controller.text = (val + 1).toString(); } }, ), const SizedBox(height: 12), TextFormField( controller: textField2Controller, ) ], ), ); } }
字符串
ljo96ir52#
您可以简单地实现这一点,将相同的textEditingController分配给两个textFormField小部件,如下所示
class TextFormFieldDemo extends StatefulWidget { const TextFormFieldDemo({super.key}); @override State<TextFormFieldDemo> createState() => _TextFormFieldDemoState(); } class _TextFormFieldDemoState extends State<TextFormFieldDemo> { late final TextEditingController textFieldController=TextEditingController(); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(), body: Column( children: [ TextFormField( controller: textFieldController, ), const SizedBox(height: 10), TextFormField( controller: textFieldController, ) ], ), ); } }
p1tboqfb3#
您可以在文本字段1的onChanged方法中更新文本字段2的值。示例:-
TextFormField( controller: textController1, onChanged: (String? value){ textController2.text="new value"; }, ),
3条答案
按热度按时间5m1hhzi41#
对于此任务,建议使用
TextEditingController
沿着TextFormField的onChanged
回调函数。下面的示例清楚地说明了所需的方法。字符串
ljo96ir52#
您可以简单地实现这一点,将相同的textEditingController分配给两个textFormField小部件,如下所示
字符串
p1tboqfb3#
您可以在文本字段1的onChanged方法中更新文本字段2的值。
示例:-
字符串