Как сделать клавиатуру перед виджетом расширения

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

      body: GestureDetector(
        onTap: (){
          FocusScope.of(context).requestFocus(new FocusNode());
        },
        child:   Container(
        child: Column(
          children: <Widget>[

            Expanded(
              flex: 3,
              child: Form(
                key: _formKey,
                child:  ListView(
                shrinkWrap: true,
                padding: EdgeInsets.only(left: 24.0, right: 24.0),
                children: <Widget>[
                  SizedBox(
                    height: spaces,
                  ),
                  loginImage,
                  SizedBox(
                    height: spaces,
                  ),
                  buildUsernameTextField(),
                  SizedBox(
                    height: spaces,
                  ),
                  buildPasswordTextField(),
                  SizedBox(
                    height: spaces,
                  ),
                  login(),
                ],
              ),
              ),

            ),
            Expanded(
              flex: 1,
              child: Container(
                decoration: BoxDecoration(
                    boxShadow: [
                      new BoxShadow(
                        color: Colors.black45,
                        offset: Offset(0.0, -6.0),
                        blurRadius: 10.0,
                      ),
                    ],
                    borderRadius: BorderRadius.only(
                        topLeft: Radius.circular(55),
                        topRight: Radius.circular(55)),
                    gradient: LinearGradient(
                        begin: Alignment.topCenter,
                        end: Alignment.bottomCenter,
                        colors: [
                          const Color(0xFFFF215490),
                          const Color(0xFFFF010431)
                        ],
                        tileMode: TileMode.clamp)),
                child: ListView(
                  shrinkWrap: true,
                  padding: EdgeInsets.only(left: 24, right: 24),
                  children: <Widget>[
                    SizedBox(
                      height: spaces,
                    ),
                    signup(),
                    forgetPassword(),
                    //_buildPasswordTextField(),
                  ],
                ),
              ),
            ),
          ],
        ),
      ),
      ),

    );

Как сделать клавиатуру перед виджетом расширения

Как сделать клавиатуру перед виджетом расширения

как это решить?

0
0
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте это, если вы еще не:

Scaffold(
    resizeToAvoidBottomInset: false,
),

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

спасибо за помощь, но экран зависает, поэтому я не могу ввести пароль

Tabarek Ghassan 22.05.2019 11:15

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

Tabarek Ghassan 22.05.2019 11:55

Хорошо, вы правы, тогда проблема в том, что у вас недостаточно места. Вы должны изменить масштаб своих виджетов или поместить SizedBox в конец представления списка форм, чтобы вы могли прокрутить вниз до поля пароля ^^" Извините, я не смог вам помочь.

Escobar 22.05.2019 12:08

нет, вы мне очень помогли, я исправляю размер картинки и использую ваше решение, и все хорошо, спасибо !!!

Tabarek Ghassan 22.05.2019 12:14

Другие вопросы по теме