如何在Wrap中使用FittedBox

问题描述 投票:0回答:1

我在

Wrap
小部件中有子小部件。

enter image description here

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"),
        ],
      ),
    );
  }
}

enter image description here

flutter dart
1个回答
0
投票

使用 EXPANDED 小部件而不是 FITTEDBOX 小部件。

© www.soinside.com 2019 - 2024. All rights reserved.