这里写自定义目录标题
- Transform旋转元素
- [可以改变宽高约束的旋转 - RotatedBox](#可以改变宽高约束的旋转 - RotatedBox)
Transform旋转元素
说明:Transform旋转操作改变了元素的方向,但并没有改变它的布局约束。因此,虽然视觉上元素看起来是旋转了,但它仍然遵循原始的宽高约束,这可能导致它不能正确地铺满 父元素。
dart
import 'dart:math' as math;
Stack(
fit: StackFit.expand,
children: [
LayoutBuilder(
builder: (context, constraints) {
final double width = constraints.maxWidth;
final double height = constraints.maxHeight;
return Transform.rotate(
angle: math.pi / 2, // 固定 90 度旋转
child: Container(
color: Colors.red,
width: mirror ? height : width, // 根据镜像状态调整宽度
height: mirror ? width : height, // 根据镜像状态调整高度
child: Icon(Icons.check_box),
),
);
},
),
],
)
可以改变宽高约束的旋转 - RotatedBox
说明:RotatedBox 是一种不同的旋转方式,它实际上改变了子组件的布局方向,而不是仅仅在绘制时旋转。这意味着它会根据旋转角度重新计算子组件的尺寸和位置,可以应用于旋转后希望铺满父元素的情境。
dart
Stack(
fit: StackFit.expand,
children: [
RotatedBox(
quarterTurns: 1, // 90 度等于 1/4 转
child: Container(
color: Colors.red,
width: MediaQuery.of(context).size.width, // 使用原始宽度
height: MediaQuery.of(context).size.height, // 使用原始高度
child: Icon(Icons.check_box),
),
),
],
)