#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 ), который автоматически займет самое большое доступное пространство