Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 如何在Flatter中设计屏幕分辨率兼容的UI?_User Interface_Flutter_Dart - Fatal编程技术网

User interface 如何在Flatter中设计屏幕分辨率兼容的UI?

User interface 如何在Flatter中设计屏幕分辨率兼容的UI?,user-interface,flutter,dart,User Interface,Flutter,Dart,我用颤振开发的应用程序的设计在不同屏幕尺寸的设备(平板电脑和手机)上被打破。卡片和容器重叠,大小不一。您的建议是什么?要使任何小部件的大小与任何设备成比例,您需要在设置小部件大小之前获得设备的宽度和高度。 例如,要创建大小与任何设备高度和宽度相适应的容器,并在旋转时进行缩放,您需要使用MediaQuery获取设备高度和宽度以缩放小部件大小,如下所示: .... @override Widget build(BuildContext context){

我用颤振开发的应用程序的设计在不同屏幕尺寸的设备(平板电脑和手机)上被打破。卡片和容器重叠,大小不一。您的建议是什么?

要使任何小部件的大小与任何设备成比例,您需要在设置小部件大小之前获得设备的宽度和高度。 例如,要创建大小与任何设备高度和宽度相适应的容器,并在旋转时进行缩放,您需要使用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(), 
             );
       }
       ...

要使任何小部件的大小与任何设备成比例,您需要在设置小部件大小之前获得设备的宽度和高度。 例如,要创建大小与任何设备高度和宽度相适应的容器,并在旋转时进行缩放,您需要使用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解决了。非常感谢。