Flutter 中 LimitedBox

142 阅读1分钟

LimitedBox 是 Flutter 中的一个布局小部件,用于限制其子部件的最大尺寸。它通常用于约束子部件在某个轴上的大小,同时允许子部件在另一个轴上自由扩展。

LimitedBox 可以通过 maxWidthmaxHeight 参数来指定子部件的最大宽度和最大高度。

通常情况下,当子部件的大小可能会超出父部件的边界时,你可以使用 LimitedBox 来确保子部件不会超出指定的最大尺寸。

下面是一个简单的示例代码,演示如何使用 LimitedBox

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('LimitedBox Example'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              LimitedBox(
                maxWidth: 200,
                maxHeight: 200,
                child: Container(
                  color: Colors.blue,
                  width: 300, // 宽度超过 LimitedBox 的 maxWidth
                  height: 300, // 高度超过 LimitedBox 的 maxHeight
                  child: Center(
                    child: Text(
                      'LimitedBox',
                      style: TextStyle(color: Colors.white),
                    ),
                  ),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个 LimitedBox,它的 maxWidthmaxHeight 都被设置为 200。然后我们在 LimitedBox 中包含了一个宽度和高度分别为 300 的蓝色容器。由于包裹在 LimitedBox 中,蓝色容器的宽度和高度将会受到限制,不能超过 LimitedBox 指定的最大宽度和最大高度,因此蓝色容器会被限制在 200x200 的大小内。