Предотвращение прокрутки при изменении текста TextEditingController

#flutter

#трепетание

Вопрос:

Я использую элемент управления TextEditingController, и когда я устанавливаю текст элемента управления на новые данные с помощью control.text = 'hi'; функции in, listview прокручивается до виджета, который использует этот элемент управления, потому что данные были изменены.

Как предотвратить прокрутку виджета, который использует этот элемент управления, когда я меняю текст элемента управления и остаюсь в том же положении на экране?

 Widget textbox_widget1(){
         return TextFormField(
          keyboardType: TextInputType.number, 
          controller: control, 
          autofocus: false,
        );
}

 

и здесь я добавил свой listview в каркас в функции сборки

      child: Scrollbar(
                controller: _scrollController,
                child: Padding(
                  padding: EdgeInsets.only( bottom: MediaQuery.of(context).viewInsets.bottom / 1.5), // fixade keyboard över title med padding, 1.5 ta bort vit padding
                  child: ListView(
                    controller: _scrollController,
                    shrinkWrap: true,
                    padding: EdgeInsets.only(left: 24.0, right: 24.0),
                    children: <Widget>[

                      SizedBox(height: 15.0),

                      textbox_widget1(),

                      SizedBox(height: 15.0),

                      textbox_widget2(),

                     SizedBox(height: 15.0),

                      textbox_widget3(),

            SizedBox(height: 15.0),

              textbox_widget4(),

            textbox_widget5(),
                      SizedBox(hight: 70,),


                    ],
                  ),
                ),
              ),
 

и функция выглядит примерно так

     void set_text(){control.text = 'new data';}
 

Спасибо

Комментарии:

1. Я добавил listview

2. Я думаю, вам следует использовать physics с условием ListView , чтобы предотвратить прокрутку во время использования.

3. Я не могу использовать physics: NeverScrollableScrollPhysics(), потому что это помешает пользователю прокручивать вниз

4. Я думаю, почему он прокручивается до виджета TextFormField, который использует этот элемент управления?

Ответ №1:

Я решил проблему, используя TextEditingController

 control = new TextEditingController(text: 'new value');