Flutter 如何在颤振中创建固定宽度和高度的彩盒?
我试图创建一个固定宽度和高度的彩盒。 如何实现这一点?将任何小部件包装在一个容器中,以强制其匹配固定大小 至于背景色或边框,请使用 然后,您可以将两者结合起来,这将导致Flutter 如何在颤振中创建固定宽度和高度的彩盒?,flutter,dart,flutter-layout,flutter-widget,Flutter,Dart,Flutter Layout,Flutter Widget,我试图创建一个固定宽度和高度的彩盒。 如何实现这一点?将任何小部件包装在一个容器中,以强制其匹配固定大小 至于背景色或边框,请使用 然后,您可以将两者结合起来,这将导致 const SizedBox( width: 42.0, height: 42.0, child: const DecoratedBox( decoration: const BoxDecoration( color: Colors.red ), ), ), 您也可以使用它,它是由许
const SizedBox(
width: 42.0,
height: 42.0,
child: const DecoratedBox(
decoration: const BoxDecoration(
color: Colors.red
),
),
),
您也可以使用它,它是由许多小部件组成的,包括上面的两个小部件。这导致:
new Container(
height: 42.0,
width: 42.0,
color: Colors.red,
)
我倾向于第一种选择。因为
容器
阻止使用“const”构造函数。但是这两种方法都起作用,作用相同。您可以使用以下方法:
FractionalTranslation(
translation: Offset(0, 0),
child: Container(
width: 100,
height: 100,
child: SizedBox(
height: 1,
width: 1,
child: const ColoredBox(color: Colors.amber),
)
),
),
推进@Rémi Rousselet答复中提出的问题 颤振的布局引擎有几个重要的限制:
- 小部件只能在其父部件给定的约束范围内决定其自身的大小。这意味着小部件通常不能有它想要的任何大小
- 小部件无法知道,也无法决定自己在屏幕中的位置,因为决定小部件位置的是小部件的父部件
- 由于父部件的大小和位置也取决于它自己的父部件,因此不考虑整个树就不可能精确定义任何小部件的大小和位置
- 如果子级需要与父级不同的大小,而父级没有足够的信息来对齐,则子级的大小可能会被忽略。定义路线时要具体
Container(width: 100, height: 100, color: Colors.red)
红色的容器
希望为100×100,但它不能,因为屏幕强制它与屏幕大小完全相同
因此,容器
填满了屏幕
解决方案
用Center
Center(
child: Container(width: 100, height: 100, color: Colors.red)
)
屏幕强制中心
与屏幕大小完全相同,因此中心
填充屏幕
中心告诉
容器
它可以是它想要的任何大小,但不能比屏幕大。现在,容器确实可以是100×100。你已经尝试过什么?不工作…,总是需要屏幕的高度和宽度,约束规范是如此违反直觉,我仍然没有解决方案。我只想要一个不会收缩或拉伸的小部件。。。为什么弗利特在这件事上和我作对。如果屏幕不能容纳一个大容器(而不是调整它的大小),在我指定容器的宽度和高度时,会出现一个滚动条吗?我试着居中,对齐。。什么都没用。剩下要做的唯一一件事就是对树上的每个小部件进行微管理,这是一件非常痛苦的事情。