BoxConstraint分类
- Tightly Constraints(严格约束)
- Loose Constraints(松散约束)
- Bounded Constraints(有界约束)
- Unbounded Constraints(无界约束)
- Infinite Constraints(无限约束)
Tightly Constraints(严格约束)
特点:
- 盒模型的宽高最大值最小值相等
- 有无子节点,盒模型宽高不受影响
使用方式:
| 1 | BoxConstraints.tight(Size(100, 100)) | 
| 1 | body: Container( | 
Loose Constraints(松散约束)
特点:
- 盒模型的宽或高其中某一最小值为0
- 子节点不超过盒模型的宽高时,盒模型的大小与子节点相等
- 没有子节点时,盒模型的宽高为最大值
使用方式:
| 1 | BoxConstraints.loose(Size(width, height)) | 
| 1 | body: Container( | 
最大值是是 Infinite(无限值)
特点:
- 继承了松散约束,且没有子节点时,盒子的宽高为屏幕宽高
无限值的松散约束:
| 1 | BoxConstraints.tightFor() | 
代码使用
| 1 | body: Container( | 
Bounded Constraints(有界约束)
特点:
- 盒模型的宽或高其中一值未固定值时
- 有无子节点,盒模型宽高为最大值
使用方式:
| 1 | BoxConstraints(minWidth,maxWidth,minHeight,maxHeight) | 
| 1 | body: Container( | 
Unbounded Constraints(无界约束)
特点:
- 当盒模型的宽或高一值为Infinite(无限值) 时
- 子元素小于盒模型时,按最小宽高展示
- 没有子元素,宽高为屏幕宽高
使用:
| 1 | BoxConstraints(minWidth: 10,maxWidth: double.infinity,minHeight: 100,maxHeight: double.infinity) | 
Infinite Constraints(无限约束)
特点:
- 宽高最小值和最大值都是 Infinite(无限值)
- 不受子元素影响宽高
- 展示宽高屏幕宽高
使用:
| 1 | BoxConstraints.expand() | 
| 1 | body: Container( |