新建项目-6.png

容器类Widget 不同于 布局类Widget:

  1. 首先,布局类Widget 的子Widget 一般都是数组,而容器类Widget 的子Widget 一般只有一个。
  2. 布局类Widget 是按照一定的排列方式对其 子Widget 进行排列,而 容器类Widget 用于嵌套其他 Widget,对 Widget 添加一些修饰(补白或背景色等)、变换(旋转或剪裁等)、或限制(大小等)。

Padding

Padding 通过给自己指定内边距来添加 子Widget。
Padding 的必填参数是 padding,然后其 child 参数就是你想要添加 padding 的 Widget

构造函数:

  1. const Padding({
  2. Key key,
  3. @required this.padding, // 容器内边距
  4. Widget child,
  5. }) : assert(padding != null),
  6. super(key: key, child: child);


EdgeInsets.all(double value) 上、下、左、右 边距都一样
EdgeInsets.only({this.left = 0.0,this.top = 0.0,this.right = 0.0,this.bottom = 0.0}) 可以单独指定一个的边距
EdgeInsets.fromLTRB(10, 20, 30, 40) 分别指定四个方向的值
EdgeInsets.symmetric({double vertical = 0.0,double horizontal = 0.0,}) vertical 的值是上、下边距, horizontal 是左右边距的值


  1. Padding(
  2. //指定四个方向相同的值
  3. //padding: EdgeInsets.all(10),
  4. //分别指定四个方向的值
  5. //padding: EdgeInsets.fromLTRB(10, 20, 30, 40),
  6. //可以单独指定一个的边距 left、right、bottom、top
  7. //padding: EdgeInsets.only(bottom: 10),
  8. //vertical 的值是上、下边距, horizontal 是左右边距的值
  9. padding: EdgeInsets.symmetric(vertical: 10, horizontal: 50),
  10. child: Text("Padding"),
  11. ),