Flutter - Transform.scale 小部件的大小在其子级缩放时不会改变

Mik*_*e N 3 flutter flutter-layout

我有一个A要缩放的小部件(像素完美)。根据设备的显示宽度,A应该增加或减少的大小。我尝试使用Transform.scale小部件来更改A. 这很有效,但Transform.scale小部件的大小永远不会改变。它始终匹配A(不缩放)的原始大小。有没有办法强制Transform.scale它总是采用其孩子的大小?或者有没有替代方法?

您可以在此处找到显示当前和所需情况的图像

编辑: 小部件A及其子项应该均匀地缩小/增长。它们之间的比例不应改变。

在此处输入图片说明

这是我目前尝试的代码

_buildWidgetA(scalingFactor) {
  return Transform.scale(
    scale: scalingFactor,
    child: A(),
  );
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*e N 5

感谢@LOfG 的输入,我了解到您无法使用Transform.scale小部件实现所需的行为。不幸的是,此小部件不会更改其大小以匹配缩放后的子项的尺寸,但会始终保持原始未缩放子项的宽度和高度。

我找到了另一个小部件 , FittedBox通过它我获得了所需的行为。使用 时FittedBox,您不会像使用那样定义比例因子Transform.scale。您宁愿放入FittedBoxaContainer并定义其宽度或高度或两者。FittedBox然后缩放的 child以匹配 parent Container

https://api.flutter.dev/flutter/widgets/FittedBox-class.html

_buildWidgetA(width, height) {
    return Container(
        width: width,
        height: height,
        child: FittedBox(
            child: A(),
        ),
    );
}
Run Code Online (Sandbox Code Playgroud)