Flutter проблемы с клавиатурой

Несколько проблем с клавиатурой.

  1. При запуске приложения, клавиатура открывается только после нажатия по TextFormField. Такой проблемы нет если переходить на эту форму, а стартовую ставить пустую страницу.
  2. При сворачивание приложения и его открытия, клавиатура закрывается через секунду автоматически, хотя фокус на TextFormField остаётся.
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:mask_text_input_formatter/mask_text_input_formatter.dart';

class Auth extends StatefulWidget {
  const Auth({super.key});
  @override
  AuthState createState() => AuthState();
}

class AuthState extends State<Auth> {

  static FocusNode focusNode = FocusNode();
  static TextEditingController controller = TextEditingController();

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((_) {
      //FocusScope.of(context).requestFocus(focusNode);
      focusNode.requestFocus();
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        systemOverlayStyle: const SystemUiOverlayStyle(
          statusBarColor: Colors.transparent,
          statusBarIconBrightness: Brightness.dark, // For Android (dark icons)
          statusBarBrightness: Brightness.light, // For iOS (dark icons)
        ),
        backgroundColor: Colors.transparent,
        elevation: 0,
      ),

      body: Padding(
        padding: const EdgeInsets.all(50.0),
        child: Center(
            child: Column(
          children: <Widget>[
            const SizedBox(height: 100.0),
            const Text(
              'Добро пожаловать',
              textAlign: TextAlign.center,
              style: TextStyle(fontSize: 24.0, fontWeight: FontWeight.bold),
            ),
            const SizedBox(height: 8.0),
            Container(
              //color: Colors.indigo,
              constraints: const BoxConstraints(maxWidth: 200),
              child: const Text(
                'Для входа укажите свой номер телефона',
                textAlign: TextAlign.center,
                style: TextStyle(fontSize: 16.0, color: Colors.grey),
              ),
            ),
            const SizedBox(height: 24.0),
            TextFormField(
              inputFormatters: [
                MaskTextInputFormatter(mask: '+# (###) ###-##-##')
              ],
              //focusNode: focusNode,
              //controller: controller,
              autofocus: true,
              keyboardType: TextInputType.number,
              decoration: const InputDecoration(
                border: OutlineInputBorder(),
                labelText: 'Телефон',
              ),
            ),
            const SizedBox(height: 24.0),
            ElevatedButton(

              onPressed: () {
                focusNode.nextFocus();
              },
              child: Text('Продолжить', style: TextStyle(fontSize: 16.0)),
            ),
          ],
        )),
      ),
    );
  }

  @override
  void dispose() {
    focusNode.dispose();
    controller.dispose();
    super.dispose();
  }
}

Ответы (0 шт):