Отображение, переполненное на 55 пикселей снизу (Android)

#flutter #dart

#flutter #dart

Вопрос:

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

 class _LoginScreenState extends State<LoginScreen> {
  String email;
  String password;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
      body: Padding(
        padding: EdgeInsets.symmetric(horizontal: 24.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: <Widget>[
            Container(
              height: 200.0,
              child: Image.asset('images/logo.png'),
            ),
            SizedBox(
              height: 48.0,
            ),
            TextField(
              onChanged: (value) {
                //Do something with the user input.
              },
              decoration: kTextFieldDecoration.copyWith(hintText: 'Enter your email'),
            ),
            SizedBox(
              height: 8.0,
            ),
            TextField(
              onChanged: (value) {
                //Do something with the user input.
              },
              decoration: kTextFieldDecoration.copyWith(hintText: 'Enter your password'),
            ),
            SizedBox(
              height: 24.0,
            ),
            RoundedButton(
              title: 'Log In',
              colour: Colors.lightBlueAccent,
              onPressed: (){
                print(email);
                print(password);
              },
            ),
          ],
        ),
      ),
    );
  }
}

 

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

Ответ №1:

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

Вы можете обернуть столбец в SingleChildScrollView (https://api.flutter.dev/flutter/widgets/SingleChildScrollView-class.html ), чтобы сделать его прокручиваемым.

Но я предполагаю, что вы не хотите, чтобы пользователь прокручивал экран входа в систему. Поэтому я бы посоветовал вам изменить один из SizedBoxes на Spacer (https://api.flutter.dev/flutter/widgets/Spacer-class.html ), который автоматически займет самое большое доступное пространство