我在
Wrap
小部件中有子小部件。
class TestWidget extends StatefulWidget {
const TestWidget({super.key});
@override
State<TestWidget> createState() => _TestWidgetState();
}
class _TestWidgetState extends State<TestWidget> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Test'),
),
body: Container(
color: Colors.red,
child: SizedBox.square(
// dimension: 100,
dimension: MediaQuery.of(context).size.width,
// child: FittedBox(
child: Container(
child: Wrap(
children: [
FlutterLogo(size: 100),
FlutterLogo(size: 100),
FlutterLogo(size: 100),
FlutterLogo(size: 100),
FlutterLogo(size: 100),
FlutterLogo(size: 100),
FlutterLogo(size: 100),
],
),
),
),
),
);
}
}
现在,由于其他动态小部件,红色方块需要更小,但我想保持项目
Wrap
ped 布局相同,只是缩小规模。我用了FittedBox
但是不起作用,布局改为内联,不再换行了
class _TestWidgetState extends State<TestWidget> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Test'),
),
body: Row(
children: [
Expanded(
child: Container(
color: Colors.red,
child: AspectRatio(
// dimension: 100,
aspectRatio: 1,
child: FittedBox(
// child: Container(
child: Wrap(
children: [
FlutterLogo(size: 100),
FlutterLogo(size: 100),
FlutterLogo(size: 100),
FlutterLogo(size: 100),
FlutterLogo(size: 100),
FlutterLogo(size: 100),
FlutterLogo(size: 100),
],
),
),
),
),
),
Text("Something else"),
],
),
);
}
}
使用 EXPANDED 小部件而不是 FITTEDBOX 小部件。