Flutter 容器
文章目录
容器 Widget 通常只接受一个子 Widget,他们直接过着间接的继承 SingleChildRenderObjectWidget
容器 Widget 一般用于包装子 Widget,添加一些修饰、变换、限制等
Padding
给子 Widget 添加留白
- padding 留白的大小(EdgeInsetsGeometry 抽象类),通常使用 EdgeInsets
- EdgeInsets.fromLTRB(double left, double top, double right, double bottom) 分别设置四个方向 padding
- EdgeInsets.all(double value) 用相同数值设置四边的 padding
- EdgeInsets.only({left, top, right, bottom}) 单独一个方向的 padding
- EdgeInsets.symmetric({vertical, horizontal}) 设置上下或者左右 padding
ConstrainedBox
ConstrainedBox 用于对子 widget 添加额外的约束
1 | ConstrainedBox( |
BoxConstraints 限制最大最小的宽高
1 | const BoxConstraints({ |
SizedBox
用于设置子 Widget 固定宽高
1 | SizedBox( |
DecoratedBox
用于对子 Widget 绘制一个装饰
1 | const DecoratedBox({ |
- decoration Decoration 实现 createBoxPainter 绘制装饰
- position 绘制的位置
- background 背景
- foreground 前景
BoxDecoration
BoxDecoration 是 DecoratedBox 的子类
1 | BoxDecoration({ |
Transform
可以对子 Widget 进行矩阵变换
1 | Container( |
平移
Transform.translate接收 offset 参数,沿 x、y 轴进行平移
旋转
Transform.rotate旋转一个角度
缩放
Transform.scale可以对子 Widget 进行缩小或放大
RotatedBox
与Transform.rotate功能相同,Rotated 的旋转在 layout 阶段,Transform 作用在绘制阶段
Container
综合功能的容器 Widget
1 | Container({ |
Margin
外边距容器
Scaffold
Meaterial 标准页面
包含可选的appBar、drawer、bottomNavigationBar、floatingActionButton等
AppBar
Material 风格的导航栏
1 | AppBar({ |
Drawer
抽屉,类似 DrawerLayout
FloatingActionButton
类似,FloatingActionButton

