Наложение флаттера и текстовые поля - PullRequest
0 голосов
/ 23 мая 2018

Я использую Флаттер.В теле скаффолда я использую

Overlay.of(context).insert(...) 

, чтобы вставить диалог входа в систему.

Однако, когда я пытаюсь выбрать поля имени пользователя / пароля, клавиатура не отображается.

Когда я использую виджет входа в «обычном» дереве, он работает.Перемещение в оверлей делает так, чтобы клавиатура не отображалась.

Я что-то здесь упускаю?Разве это не должно работать?

1 Ответ

0 голосов
/ 03 сентября 2018

Вам нужно обернуть свои виджеты в FocusScope, как показано ниже:

      overlayEntry = OverlayEntry(builder: (context) {
        FocusScope.of(context).setFirstFocus(focusScopeNode);
        return Material(
          child: FocusScope(
            node: focusScopeNode,
            child: Padding(
              padding: const EdgeInsets.all(20.0),
              child: Column(
                children: <Widget>[
                  TextField(),
                ],
              ),
            ),
          ),
        );
      });
      Overlay.of(context).insert(overlayEntry);

На самом деле, для страницы входа в систему я бы просто использовал Навигатор, чтобы вставить ее.

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