исчезновение текста, написанного в текстовом поле после нажатия Готово - PullRequest
0 голосов
/ 30 апреля 2019

Я использую текстовое поле в своем приложении для написания комментариев, когда пользователь вводит текст и нажимает кнопку, текст должен быть записан в базу данных. Однако у меня есть проблема, которая заключается в том, что когда я пишу текст, затем нажимаю «Готово» или возвращаюсь с клавиатуры, текст исчезает, и нет комментариев для добавления. Есть ли идея сохранить значение текста в текстовом поле даже после нажатия Готово или возврата? Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 30 апреля 2019

Не уверен, почему ваш вход исчезает, но вы можете использовать TextEditingController и передать этот контроллер на TextField.Затем получите доступ к значению TextField, используя controller.text.

Вот небольшой пример

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  String databaseText;
  TextEditingController controller = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: TextField(
            controller: controller,
            onEditingComplete: () {
              databaseText = controller.text;
              print(databaseText);
            },
          ),
        ),
      ),
    );
  }
}
0 голосов
/ 30 апреля 2019
String _text;
final formKey = GlobalKey<FormState>();

Form(
    key: formKey,
    child: Column(children: <Widget>[
      TextFormField(
        autocorrect: false,
        decoration: InputDecoration(labelText: "Text:"),
        onSaved: (str) => _text = str,
      )
    ]));

Затем просто передайте переменную _text внутри вашего параметра как значение ключа.

...