Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.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
Flutter 颤振:如何在同一程序中适应所有屏幕尺寸?_Flutter - Fatal编程技术网

Flutter 颤振:如何在同一程序中适应所有屏幕尺寸?

Flutter 颤振:如何在同一程序中适应所有屏幕尺寸?,flutter,Flutter,我是新来的。UI设计师提供了基于iPad的XD。当我处理小部件的大小时,我只是将大小设置为XD显示的大小(在px中)。例如:高度:100,宽度:100。但今天我在一台物理设备(比iPad小得多的手机)上测试了这个应用程序,一切都是多余的。当我在XD中使用与iPad大小相同的模拟器时,我总是忽略这个问题。那么如何适应不同屏幕尺寸的不同设备呢?有什么功能或其他工具有用吗?flatter有一些内置的小部件来解决这个问题 如报告所述 1. 布局生成器 LayoutBuilder是一个很好的选择,因为它接

我是新来的。UI设计师提供了基于iPad的XD。当我处理小部件的大小时,我只是将大小设置为XD显示的大小(在px中)。例如:
高度:100,宽度:100
。但今天我在一台物理设备(比iPad小得多的手机)上测试了这个应用程序,一切都是多余的。当我在XD中使用与iPad大小相同的模拟器时,我总是忽略这个问题。那么如何适应不同屏幕尺寸的不同设备呢?有什么功能或其他工具有用吗?

flatter有一些内置的小部件来解决这个问题

如报告所述

1. <代码>布局生成器
LayoutBuilder
是一个很好的选择,因为它接受一个
builder
,它提供
BuildContext
BoxConstraints
。每次布局更改时都会调用
生成器

2.
MediaQuery.of()
MediaQuery.of()
提供当前应用程序的大小、方向等信息。如果您想根据完整的上下文而不仅仅是特定小部件的大小来做出决策,这将更有用。同样,如果您使用此功能,那么如果用户以某种方式更改应用程序的大小,构建功能将自动运行

3. <代码>方向生成器,
部分物理化数据库
AspectRatio
OrientationBuilder
为您提供当前屏幕方向

partiallysizedbox
AspectRatio
提供父级的大小

您还可以使用一些第三方软件包-

1. 该软件包创建了一个设计草图,并允许您使用具有高度响应性的类似像素的值

2.
此软件包对于响应大小的文本非常有用。

当我通常创建颤振应用程序时,对于其响应性,我通常使用以下几点:

  • 使用行和列时使用和小部件: 所有这些都有一个名为flex的属性,非常有用。每当我使用行或列时,我都使用这些小部件

  • 使用布局生成器和媒体查询小部件: 这些都在文档中:(推荐更多关于颤振文档的文章),可以用来了解屏幕大小、宽度和高度,以及应用程序在不同方向上的功能。 按如下方式给出宽度和高度:
    double w=MediaQuery.of(context).size.width

    双h:MediaQuery.of(context).size.height

  • 使用外部库: 在我的项目中,我经常使用两个库(显示你的应用程序如何在不同的屏幕大小上工作,这对我很有帮助),另一个库用于文本,这是:可能不可取,因为这会调整文本大小,在整个应用程序中可能不会保持不变,但有时它很有用


看看这个,这会对你有帮助,@Byhuang 1998
MediaQuery.of(context).size.height
&
MediaQuery.of(context).size.width
会给你设备的确切高度和宽度。使用设备宽度和高度创建UI将非常有助于实现响应。这可能是一个相同的问题: