各种移动设备上的颤动响应问题
Flutter responsiveness problem on various mobile devices
我是 Flutter 的初学者,我尝试创建一个虚拟登录页面。当我尝试 运行 该应用程序时,它在 Pixel 3 XL 上完美无缺,但在 Pixel 2 XL 上表现不佳。我将如何管理响应能力?我遇到了 MediaQuery
小部件,但如何为每个设备创建一个完全响应的应用程序?当今的移动设备(如缺口显示、全屏等)有很多变化,随后出现了平板电脑。我怎么能管理这个?我应该为每个分辨率编写代码吗?
这是我在 Pixel 3 XL 和 Pixel 2 XL 上的设计
您可以将 SingleChildScrollView
用作 parent,
SingleChildScrollView(
child: Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height,
child: Stack(
),
),
);
编辑:同时从 Stack
小部件中删除 fit: StackFit.expand,
。
此问题背后的原因是高度为 100px 的 sizedbox 小部件。
删除它并使用 mainaxisalignment 作为 spaceevenly 给出所需的输出。
这是修改后的代码:
@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()
],
),
],
),
);
}
这解决了问题。
为不同的屏幕尺寸做出响应的最简单的方法 UI 是 Sizer 插件。
响应式 UI 在任何屏幕尺寸的设备和平板电脑中。
看看这个插件⬇️
https://pub.dev/packages/sizer
.h - for widget height
.w - for widget width
.sp - for font size
像这样在值后使用.h
、.w
、.sp
⬇️
示例:
Container(
height: 10.0.h, //10% of screen height
width: 80.0.w, //80% of screen width
child: Text('Sizer', style: TextStyle(fontSize: 12.0.sp)),
);
我用这个插件构建了许多响应式 UI。
使用这个包 flutter_next 使用这个你可以设计响应式 UI 即使是桌面网络和所有东西,他们也有一个演示所以你可以在那里检查
我是 Flutter 的初学者,我尝试创建一个虚拟登录页面。当我尝试 运行 该应用程序时,它在 Pixel 3 XL 上完美无缺,但在 Pixel 2 XL 上表现不佳。我将如何管理响应能力?我遇到了 MediaQuery
小部件,但如何为每个设备创建一个完全响应的应用程序?当今的移动设备(如缺口显示、全屏等)有很多变化,随后出现了平板电脑。我怎么能管理这个?我应该为每个分辨率编写代码吗?
这是我在 Pixel 3 XL 和 Pixel 2 XL 上的设计
您可以将 SingleChildScrollView
用作 parent,
SingleChildScrollView(
child: Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height,
child: Stack(
),
),
);
编辑:同时从 Stack
小部件中删除 fit: StackFit.expand,
。
此问题背后的原因是高度为 100px 的 sizedbox 小部件。 删除它并使用 mainaxisalignment 作为 spaceevenly 给出所需的输出。 这是修改后的代码:
@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()
],
),
],
),
);
}
这解决了问题。
为不同的屏幕尺寸做出响应的最简单的方法 UI 是 Sizer 插件。
响应式 UI 在任何屏幕尺寸的设备和平板电脑中。
看看这个插件⬇️
https://pub.dev/packages/sizer
.h - for widget height
.w - for widget width
.sp - for font size
像这样在值后使用.h
、.w
、.sp
⬇️
示例:
Container(
height: 10.0.h, //10% of screen height
width: 80.0.w, //80% of screen width
child: Text('Sizer', style: TextStyle(fontSize: 12.0.sp)),
);
我用这个插件构建了许多响应式 UI。
使用这个包 flutter_next 使用这个你可以设计响应式 UI 即使是桌面网络和所有东西,他们也有一个演示所以你可以在那里检查