根据父组件的大小比例,缩小小部件中的所有子元素。

4
在Flutter中,我正在实现“新功能”的屏幕,将在应用程序中显示真实屏幕的预览。为此,我在“新功能”流程中重用屏幕小部件。预览将显示在较小的容器中,并不覆盖整个屏幕。
我想要缩小这个Container内所有小部件(包括文本大小、行高等),以匹配更小的界限。是否有一种方法可以在不单独为每个小部件添加较小样式的情况下完成这个操作?
例如,无论主题中设置的大小如何,将所有Widget childfontSizes缩小20%。

我通常使用MediaQuery根据屏幕大小缩小字体,而不是子元素的父元素,并发现这可能与您的问题有关https://dev59.com/E1gR5IYBdhLWcg3wO7U0 - Slah Layouni
谢谢,这是一个可行的解决方案,但不能应用于我的情况,因为所有字体都是由固定大小定义的。 - MrJM
1个回答

2
我找到了解决方案。使用 Transform.scale(...) 包装子部件树将按照提供的比例因子缩小树中的所有部件。
Column(
  mainAxisAlignment: MainAxisAlignment.center,
  children: [
    Transform.scale(
      scale: 0.9,
      child: MyScaledWidgetTree(),
     ),
     Container(
      child: ...,
     ),
   ],
)

1
我们如何使比例尺动态化,以便仅在溢出时缩小?此外,缩小比例值应该足够修复溢出。即,它应该尽可能大,而没有任何溢出。我们如何找到这个值? - Rohan Kadkol

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接