# 松约束

本文作者:阳九五 (opens new window)

本站地址:https://blog.56321654.xyz (opens new window)

松约束(loose constraints)是指在布局过程中,给定的约束条件允许子组件的尺寸可以小于某个特定的值。

尺寸是弹性的

# Column 宽度等于子元素最大宽度

import 'package:flutter/material.dart';

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

Widget build() {
  return MaterialApp(
    home: Scaffold(
      body: Column(
        children: const [
          Text("aaaaaaaaaaaaaaaaaaaaaa"),
          Text("aaaaaaaaaaa"),
        ],
      ),
    ),
  );
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

Image

# Container 紧包裹子元素

  • Scaffold 填充了整个屏幕,Container 包裹了 Column
class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Container(
          color: Colors.amber,
          child: Column(
            children: const [
              Text("aaaaaaaaaaaaaaaa"),
              Text("bbbbbbbbb"),
            ],
          ),
        ),
      ),
    );
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

Image

  • Container 的宽高随着 Column 一起变化 w = 124.0,紧包裹

Image

# 松约束定义

当一个 widget 告诉其子级可以比自身更小的话, 我们通常称这个 widget 对其子级使用 宽松约束(loose)。

  • Scaffold 对 Column 的约束是宽高屏幕宽度内即可

Image

  • Column 的宽度按 Text 最大宽度为准

Image

# 参考

最近更新: 7/29/2025, 9:40:27 AM