ввод пароля скрыт с клавиатуры

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

      child: TextField(
            enableInteractiveSelection: false,
            focusNode: focusNode,
            controller: widget.controller,
            keyboardType: TextInputType.number,
            inputFormatters: <TextInputFormatter>[FilteringTextInputFormatter.digitsOnly],
            style: const TextStyle(
              height: 0.1,
              color: Colors.transparent,
            ),
            decoration: const InputDecoration(
              focusedErrorBorder: transparentBorder,
              errorBorder: transparentBorder,
              disabledBorder: transparentBorder,
              enabledBorder: transparentBorder,
              focusedBorder: transparentBorder,
              helperStyle: TextStyle(
                color: Colors.transparent,
              ),
              fillColor: Colors.transparent,
              border: InputBorder.none,
            ),
            cursorColor: Colors.transparent,
            showCursor: false,
            maxLength: widget.maxLength,
            onChanged: _onTextChanged,
          ),

2 ответа

Оберните всю колонну в каркас SingleChildScrollView с собственностью reverse: true.

Как это:

Можете ли вы проверить этот пакет: keyboard_visibility Вы можете получить состояние вашей клавиатуры и на основе этого скрыть / показать текстовые виджеты. Рассмотрим следующий код:

      class _LoginPageState extends State<LoginPage> {
  bool _isKeyboardVisible = false;
  StreamSubscription _subscription;

  @override
  void initState() {
    super.initState();

    _subscription =
        KeyboardVisibilityController().onChange.listen((bool visible) {
      setState(() => _isKeyboardVisible = visible);
    });
  }

  @override
  void dispose() {
    _subscription.cancel();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        Visibility(
          visible: !_isKeyboardVisible,
          child: Text("Your header text"),
        ),
        Visibility(
          visible: !_isKeyboardVisible,
          child: Text("Your description text"),
        )
        TextField(
          ...
        ) // Your PIN widgets
      ]
    );
  }
}
Другие вопросы по тегам