为什么缩放到 0.5 时会抖动剪辑 children?

Why flutter clips children when scaling to 0.5?

对于比横向屏幕大的小部件场景,我需要根据设备旋转应用不同的比例。

但是当我应用 0.5 比例时,children 被剪掉了。

如何将场景缩放到 0.5 以显示在整个屏幕上?

 /// The scene: the hill, the street and the pump
  Widget scene() {
    double width = MediaQuery.of(context).size.width;
    double height = MediaQuery.of(context).size.height;

    final bool isLandscape = width > height;
    final double scale = isLandscape ? 0.5 : 1;

    return // == The custom paint sky
        Transform.scale(
            scale: scale,
            child: Stack(
              children: [
              Positioned(top: 0, width: 150, child: HillVehicleAnimation()),

实际上,默认情况下,Stack() 剪辑子项。所以添加一个clipBehavior属性,设置为Clip.none,得到想要的效果如下:

return // == The custom paint sky
        Transform.scale(
            scale: scale,
            child: Stack(
              // == Ask Stack not to clip!
              clipBehavior: Clip.none,
              children: [
              Positioned(top: 0, width: 150, child: HillVehicleAnimation()),