我是Flutter的初学者,我尝试创建一个虚拟的登录页面。当我尝试运行该应用程序时,它在Pixel 3 XL上没有问题,但在Pixel 2 XL上却不好。我将如何管理响应能力?我遇到了MediaQuery
小部件,但是如何为每个设备创建一个完全响应的应用程序?当今的移动设备之间存在多种变化(例如,带缺口的显示屏,全屏等),随后便是平板电脑。我该如何处理?我应该为每种分辨率编写代码吗?
[这是我在Pixel 3 XL和Pixel 2 XL上的设计
您可以将SingleChildScrollView
用作父级,
SingleChildScrollView(
child: Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height,
child: Stack(
),
),
);
编辑:还要从fit: StackFit.expand,
小部件中删除Stack
。
此问题的原因是高度为100px的sizebox窗口小部件。删除并使用mainaxisalignment均匀地获得所需的输出。这是修改后的代码:
@override
Widget build(BuildContext context) {
return Scaffold(
resizeToAvoidBottomPadding: false,
body: Stack(
fit: StackFit.expand,
children: <Widget>[
bgimage,
Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
logoimage,
userName(),
password(),
forgotPassword(),
loginButton(),
googleSignIn(),
signUp()
],
),
],
),
);
}
这解决了问题。