AspectRatio和FractionallySizedBox是Flutter中用于按比例縮放子部件的兩個常用小部件。
AspectRatio小部件是一個具有特定寬高比的小部件。它接受一個aspectRatio參數,該參數是一個double類型的值,表示寬度與高度的比例。AspectRatio會根據給定的比例自動調整子部件的大小。例如,如果設置了aspectRatio為2.0,那么子部件的寬度將是高度的兩倍。AspectRatio小部件通常用于在布局中保持子部件的寬高比。
```dart
AspectRatio(
aspectRatio: 16/9,
child: Container(
color: Colors.red,
),
)
```
FractionallySizedBox小部件是一個根據父部件的尺寸按比例調整子部件大小的小部件。它接受一個widthFactor和heightFactor參數,這兩個參數都是double類型的值,分別表示子部件相對于父部件的寬度和高度比例。例如,如果設置了widthFactor為0.5,那么子部件的寬度將是父部件寬度的一半。FractionallySizedBox小部件通常用于在布局中調整子部件的大小,以便它們的寬度或高度相對于父部件的大小保持不變。
```dart
FractionallySizedBox(
widthFactor: 0.5,
child: Container(
color: Colors.blue,
),
)
```
無論是AspectRatio還是FractionallySizedBox,都可以根據實際需求來使用。它們為我們提供了一種簡單而方便的方法來按比例縮放子部件的大小。