Возможно ли во Flutter повторно использовать TextEditingController? - PullRequest
0 голосов
/ 02 февраля 2020

В моем приложении много текстовых полей, например, больше 50.

class BoxFieldItem extends StatelessWidget {
  BuildContext context;

  final String title;
  final String subtitle;
  TextEditingController textControler;


  BoxFieldItem(this.title,this.subtitle,){
    textControler=new TextEditingController();

  }

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(8.0),
      child: TextField(
        textInputAction: TextInputAction.next,
        controller: textControler,
    /*    onChanged: (String e) {

        },*/
        decoration: InputDecoration(
            fillColor: Colors.lightBlue[40],
            filled: true,

            prefixIcon: Icon(Icons.person),

            labelText: title,
            hintText: subtitle,
            hintStyle: TextStyle(fontSize: 12),
            border:
            OutlineInputBorder(borderRadius: BorderRadius.circular(10))),
      ),
    );
  }
}

У меня есть этот класс виджетов, проблема в том, что я использую его следующим образом: BoxFieldItem ('Title', 'sub' ), введенный текст исчезает, если я прокручиваю или нажимаю "Далее"? Что я делаю не так

1 Ответ

0 голосов
/ 02 февраля 2020

В зависимости от вашей реализации. Я бы создал widget, который обернет TextField и его controller, тогда на вашей странице вам просто нужно использовать созданный виджет и предоставить различные конфигурации через конструктор.

Чтобы прослушать изменения в TextField Вы можете просто предоставить обратный вызов для использования на своей странице.

...