Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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_Dart_Flutter Layout_Flutter Widget - Fatal编程技术网

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。

你已经尝试过什么?不工作…,总是需要屏幕的高度和宽度,约束规范是如此违反直觉,我仍然没有解决方案。我只想要一个不会收缩或拉伸的小部件。。。为什么弗利特在这件事上和我作对。如果屏幕不能容纳一个大容器(而不是调整它的大小),在我指定容器的宽度和高度时,会出现一个滚动条吗?我试着居中,对齐。。什么都没用。剩下要做的唯一一件事就是对树上的每个小部件进行微管理,这是一件非常痛苦的事情。