简介:

一般情况下,Align是某个组件的属性来存在的,并不会单独拿出来。Align主要是设置child的对齐方式但Flutter例外

Align基本用法。

  1. Container(
  2. color: Colors.green[100],
  3. child: Align(
  4. alignment: Alignment.center,
  5. widthFactor: 1.0,
  6. heightFactor: 1.0,
  7. child: Text("SOS" ,style : TextStyle(fontSize : 28, color : Colors.red, ))
  8. )
  9. )

WechatIMG11.png

Align 基本属性都有

  1. const Align({
  2. Key key,
  3. this.alignment = Alignment.center,
  4. this.widthFactor,
  5. this.heightFactor,
  6. Widget child,
  7. }) : assert(alignment != null),
  8. assert(widthFactor == null || widthFactor >= 0.0),
  9. assert(heightFactor == null || heightFactor >= 0.0),
  10. super(key: key, child: child);
  • alignment : 设置child的子级的对齐方式。
  • widthFactor : 当我们Align 有父级时候,则WidthFactor对Align无效。反之会以child的倍数填充Align 的 width.
  • heightFactor : 当我们Align 有父级的时候,则 heightFactor 对 Align无效。反之会以child的倍数填充Align 的 height.

Align的宽高,决定外部父容器的宽高。 如果上面我们没属性widthFactor 和 heightFactor属性的时候 则align会铺满整个屏幕,应为Container没设置高度的时候,就是会和外层容器宽高一样。

当且仅当 Align 外层没有高度的时候,则widthFactor heightFactor才起作用。

Align 外层没设置大小

  1. Container(
  2. color: Colors.green[100],
  3. child: Align(
  4. alignment: Alignment.center,
  5. widthFactor: 4.0,
  6. heightFactor: 3.0,
  7. child: Text("SOS" ,style : TextStyle(fontSize : 28, color : Colors.red, ))
  8. )
  9. )

WX20200910-151628.png

当你设置widthFactor较大的时候,超过了实际宽度,则会按照实际宽度设置。

Align 外层设置大小

  1. Container(
  2. color: Colors.green[100],
  3. width: 150,
  4. height: 150,
  5. child: Align(
  6. alignment: Alignment.center,
  7. widthFactor: 6.0,
  8. heightFactor: 6.0,
  9. child: Text("SOS" ,style : TextStyle(fontSize : 28, color : Colors.red, ))
  10. )
  11. )

WX20200910-152045.png
当你外层设置了大小的时候,你里面在设置widthFactor是无效的。