User interface 如何在Flatter中设计屏幕分辨率兼容的UI?
我用颤振开发的应用程序的设计在不同屏幕尺寸的设备(平板电脑和手机)上被打破。卡片和容器重叠,大小不一。您的建议是什么?要使任何小部件的大小与任何设备成比例,您需要在设置小部件大小之前获得设备的宽度和高度。 例如,要创建大小与任何设备高度和宽度相适应的容器,并在旋转时进行缩放,您需要使用MediaQuery获取设备高度和宽度以缩放小部件大小,如下所示:User interface 如何在Flatter中设计屏幕分辨率兼容的UI?,user-interface,flutter,dart,User Interface,Flutter,Dart,我用颤振开发的应用程序的设计在不同屏幕尺寸的设备(平板电脑和手机)上被打破。卡片和容器重叠,大小不一。您的建议是什么?要使任何小部件的大小与任何设备成比例,您需要在设置小部件大小之前获得设备的宽度和高度。 例如,要创建大小与任何设备高度和宽度相适应的容器,并在旋转时进行缩放,您需要使用MediaQuery获取设备高度和宽度以缩放小部件大小,如下所示: .... @override Widget build(BuildContext context){
....
@override
Widget build(BuildContext context){
double _height = MediaQuery.of(context).size.height;
double _width = MediaQuery.of(context).size.width;
return Container(
height: _width > _height ? _width / 10 : _height / 10,
width: _width > _height? ? _height / 10 : _widht / 10,
child: AnyWidget(),
);
}
...
要使任何小部件的大小与任何设备成比例,您需要在设置小部件大小之前获得设备的宽度和高度。 例如,要创建大小与任何设备高度和宽度相适应的容器,并在旋转时进行缩放,您需要使用MediaQuery获取设备高度和宽度以缩放小部件大小,如下所示:
....
@override
Widget build(BuildContext context){
double _height = MediaQuery.of(context).size.height;
double _width = MediaQuery.of(context).size.width;
return Container(
height: _width > _height ? _width / 10 : _height / 10,
width: _width > _height? ? _height / 10 : _widht / 10,
child: AnyWidget(),
);
}
...
我真的建议你看一看这个类,它完全是为了解决你的问题而创建的。查看文档中的每个信息;下面是一个简单的用法:
LayoutBuilder(
builder: (context, constraints) {
if (constraints.maxWidth < YOUR_SIZE)
return Column();
else
return GridView();
},
),
LayoutBuilder(
生成器:(上下文、约束){
if(constraints.maxWidth<您的大小)
返回列();
其他的
返回GridView();
},
),
非常直观:如果设备的宽度小于您的大小,屏幕就不那么“宽”,而且一列也很适合。否则,您可以将小部件放置在一个可能有N列的网格中
使用小部件组合,而不是返回
Widget
的函数。函数没有经过优化,你不能构造小部件,每次都会被重建 我真的建议您看一看创建的类,它正是为了解决您的问题。查看文档中的每个信息;下面是一个简单的用法:
LayoutBuilder(
builder: (context, constraints) {
if (constraints.maxWidth < YOUR_SIZE)
return Column();
else
return GridView();
},
),
LayoutBuilder(
生成器:(上下文、约束){
if(constraints.maxWidth<您的大小)
返回列();
其他的
返回GridView();
},
),
非常直观:如果设备的宽度小于您的大小,屏幕就不那么“宽”,而且一列也很适合。否则,您可以将小部件放置在一个可能有N列的网格中
使用小部件组合,而不是返回
Widget
的函数。函数没有经过优化,你不能构造小部件,每次都会被重建 欢迎来到SO。请阅读和阅读。这会给你一个提出适当问题的想法。所以人们可以尝试帮助你。欢迎来到So。请阅读和阅读。这会给你一个提出适当问题的想法。所以人们可以尝试帮助你。我的问题是通过MediaQuery解决的。非常感谢。我的问题通过MediaQuery解决了。非常感谢。