Значение 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»;

Добавить \n в строку.

This\nall\nare\nin\nnew\nlines

Тебе необходимо TextEditingController чтобы установить текущую строку в:

      final controller = TextEditingController();

Затем вы передадите этот контроллер в поле:

      TextField(
  controller: controller,
  ...
)

Теперь вы можете редактировать строку в TextField всякий раз, когда значение изменяется в TextFormField:

      TextFormField(
  onChanged: (value) {
    if (value != '') {
      controller.text = "${controller.text}\n$value";
    }
  },
  ...
)