为什么缩放到 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()),
对于比横向屏幕大的小部件场景,我需要根据设备旋转应用不同的比例。
但是当我应用 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()),