Удар сделан на клавиатуре очищает текст в трепетании - PullRequest
0 голосов
/ 16 мая 2019

У меня есть TextField() и контроллер, который я передаю его TextField контроллеру.Моя проблема в том, что каждый раз, когда я нажимаю «Готово» на клавиатуре, он очищает мой текст.

Я следил за этим вопросом: Кнопка «Завершение клавиатуры» приводит к исчезновению содержимого текстового поля Вопрос для решения моей проблемы, но у меня ничего не получается.Я не знаю, поэтому снова ставлю этот вопрос в StackOverflow.

МОЙ КОД:

class ReferralPage extends StatelessWidget {
  final TextEditingController controller = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Container(
         margin: EdgeInsets.only(top: 40.0, left: 16.0, right: 16.0),
         child: Card(
           color: Colors.white,
           child: Padding(
              padding: EdgeInsets.all(24.0),
              child: TextField(
                 controller: controller,
                 cursorColor: Theme.of(context).primaryColor,
                 decoration: InputDecoration(hintText: 'Referral Code'),
              )
           )
         ),
         decoration: BoxDecoration(boxShadow: [
          new BoxShadow(color: Color.fromRGBO(173, 179, 191, 0.3), blurRadius: 20.0, offset: new Offset(0, 12))
         ])
     )
   );
 }
} 

Как видите, мой TextEditingController() находится не внутри Widget build так что смысла в этом нет.

Единственное решение, которое я нашел для этой проблемы, состояло в том, чтобы удалить контроллер, но я не хочу этого делать, я хочу использовать свой контроллер для других целей.Я не знаю, почему это происходит.

Любая помощь будет оценена.Спасибо:)

1 Ответ

1 голос
/ 16 мая 2019

У вас возникла эта проблема, потому что вы используете виджет без сохранения состояния. Измените виджет без сохранения состояния на виджет с сохранением состояния, чтобы ваш контроллер не был восстановлен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...