【发布时间】:2020-07-23 05:42:57
【问题描述】:
ListView 的高度应与窗口的高度相同。因此,当键盘打开时,用户可以向下滚动以查看键盘覆盖的小部件。并且小部件不应该改变它们的位置。我使用 Align 小部件来定位它们,并用 Stack 小部件包装。换句话说:它应该与 Instagram 登录页面完全一样。
【问题讨论】:
ListView 的高度应与窗口的高度相同。因此,当键盘打开时,用户可以向下滚动以查看键盘覆盖的小部件。并且小部件不应该改变它们的位置。我使用 Align 小部件来定位它们,并用 Stack 小部件包装。换句话说:它应该与 Instagram 登录页面完全一样。
【问题讨论】:
我希望这会有所帮助: 演示:https://i.ibb.co/g7C3K7K/dmeo.gif
import 'package:flutter/material.dart';
class LoginPage extends StatefulWidget {
@override
_LoginPageState createState() => _LoginPageState();
}
class _LoginPageState extends State<LoginPage> {
final key = GlobalKey<ScaffoldState>();
@override
Widget build(BuildContext context) {
return Scaffold(
key: key,
body: SingleChildScrollView(
child: Container(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(
"Welcome to the login page",
style: Theme.of(context).textTheme.display1,
),
TextField(
decoration: InputDecoration(hintText: "Name"),
),
FlatButton(
onPressed: () {
key.currentState.showSnackBar(SnackBar(
content:
Text("I won't say your name but stay home, stay safe!"),
));
},
child: Text("Say my name"))
],
),
),
),
);
}
}
【讨论】: