根据父级大小按比例缩小小部件中的所有子级

Scale down all children in widget by a factor based on the parent size

在 Flutter 中,我正在实现 "what's new" 屏幕,它将显示应用中真实屏幕的预览。 为此,我在 "what's new" 流程中重复使用屏幕 Widgets。 预览将以较小的 Container 显示,不会覆盖整个屏幕。

我想缩小Container 中所有小部件的文本大小、行高等,以匹配较小的边界。 有没有办法做到这一点,而无需分别为每个 Widget 添加较小的样式?

例如将所有 fontSizes 缩小 20% 以获得 Widget child,无论主题中设置的大小如何

我找到了解决方案。使用 Transform.scale(...) 包裹子部件树将根据提供的比例因子向下缩放树中的所有部件。

Column(
  mainAxisAlignment: MainAxisAlignment.center,
  children: [
    Transform.scale(
      scale: 0.9,
      child: MyScaledWidgetTree(),
     ),
     Container(
      child: ...,
     ),
   ],
)