Значение TextFormField для новой строки TextField
У меня вопрос. Я хочу отправить вывод return (returnvalue1 ... 2 ... 3) из TextFormField в TextField. Я хочу, чтобы каждый вывод добавлялся к новой строке без очистки TextField. Как я могу это сделать? Спасибо за помощь.
Коды TextFormField:
TextFormField(
decoration: InputDecoration(
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.green,
width: 2.0,
),
),
prefixText: 'test: ',
prefixStyle: TextStyle(color: Colors.green, fontSize: 20),
errorStyle: TextStyle(
backgroundColor: Colors.black,
color: Colors.green,
fontSize: 18)
),
style: TextStyle(
fontSize: 18,
color: Colors.green,
backgroundColor: Colors.black),
validator: (value) {
if (value == null || value.isEmpty) {
return AppLocalizations.of(context)!.returnvalue1;
}
if (value == girdi) {
return AppLocalizations.of(context)!.returnvalue2;
} else {
return AppLocalizations.of(context)!.returnvalue3;
}
},
),
Padding(
padding: const EdgeInsets.symmetric(vertical: 16.0),
child: ElevatedButton(
onPressed: () {
if (_formKey.currentState!.validate()) {
}
},
child: Text(AppLocalizations.of(context)!.addTextToNewLine),
),
),
Коды текстовых полей:
TextField(
readOnly: true,
showCursor: false,
style: TextStyle(
fontSize: 18,
color: Colors.green,
backgroundColor: Colors.black),
),
3 ответа
Решение
добавить контроллеры как в TextFormField, так и в TextField. Затем сделайте это, если хотите добавить каждый вывод.
textFieldController.text = textFieldController.text + textFormFieldController.text + «\ n»;
Тебе необходимо
TextEditingController
чтобы установить текущую строку в:
final controller = TextEditingController();
Затем вы передадите этот контроллер в поле:
TextField(
controller: controller,
...
)
Теперь вы можете редактировать строку в
TextField
всякий раз, когда значение изменяется в
TextFormField
:
TextFormField(
onChanged: (value) {
if (value != '') {
controller.text = "${controller.text}\n$value";
}
},
...
)