假设在 Flutter 中我们有一个 Stack,其中包含:
- 大小为 Size.infinite 的 CustomPainter
- 任何其他不是自定义画家的小部件(我们也希望以与自定义画家完全相同的方式填充所有可用空间)
在此示例中,我为项目 2 使用了一个图标:
@override
Widget build(BuildContext context) {
return Expanded(
child: Container(
color: Colors.white,
child: Stack(
children: [
Icon(Icons.star),
CustomPaint(
painter: MyCustomPainter(percentTimeElapsed: 0.5),
size: Size.infinite)
],
),
),
);
}
现在,很明显,我们还没有得到想要的结果——自定义画家是“扩展的” ,但图标不是。
但是我没有运气尝试了以下所有方法:
- 用 Expanded 包装图标(导致异常)
- 用 Expanded 包装 Stack 小部件(导致异常)
- 将 Icon 的大小定义为 Size.infinite (不会构建,因为 size 参数需要双精度)
- 使用fit: StackFit.expand作为 Stack 的参数,但这似乎只是使图标居中并且不会改变它的大小。