Трепещущее текстовое поле скрывается при появлении клавиатуры

#flutter #google-maps #dart #singlechildscrollview

Вопрос:

Я новичок в flutter, и у меня есть проблема. Когда я нажимаю на поле текстовой формы, это поле исчезает

Я поместил контейнер в красный цвет, но обычно он прозрачный

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

Проблема в том, что, когда я нажимаю на поле Текстовая форма, оно исчезает с экрана. Я пытался играть с SingleChildScrollView, ListView, но у меня все еще есть ошибки, особенно из-за карты GoogleMap, которая занимает все пространство, Все, что содержится на подмостках

Не могли бы вы мне помочь, пожалуйста, где дать мне решение? Я прилагаю код ниже

сердечно

введите описание изображения здесь

введите описание изображения здесь

возвращаемый стек( дочерние элементы: [ /// Столбец карты Google( дочерние элементы: [ Расширен( дочерний элемент: Карта Google(начальное расположение: _kInitialPosition), ), ], ),

     /// Search Bar And Filter
    Positioned.fill(
      bottom: _searchBarContainer,
      child: SafeArea(
        child: Container(
          color: Colors.red,
          child: Padding(
            padding: const EdgeInsets.only(left: 8.0, right: 8.0),
            child: Row(
              children: [
                /// Search Bar
                Expanded(
                  child: TextFormField(
                    decoration: DesignWidget.inputDecorationTexFieldMap(
                        _searchBarMap, Icons.search),
                  ),
                ),

                /// Filter
                Container(
                  width: _filterContainer,
                  color: Colors.green,
                  child: Row(
                    children: [
                      Container(
                        color: Colors.yellow,
                        width: _filterContainer / 2,
                      ),
                      Container(
                        color: Colors.green,
                        width: _filterContainer / 2,
                      )
                    ],
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    ),
  ],
);
 

Ответ №1:

просто используйте этот пакет [material_floating_search_bar: ^0.3.4]

Ответ №2:

Я думаю, что прежде чем использовать TextFormField, вам нужно либо определить ключ, либо controller…..it происходит, когда вы не определяете экземпляр контроллера и используете этот контроллер внутри контроллера TextFormField.

Ответ №3:

Хорошо, я нашел решение, которое мне нужно добавить (в складку) : resizeToAvoidBottomInset: false