Flutter容器组件之Padding

填充(Padding)

Padding可以给其子节点添加填充(留白),和边距效果类似。它的定义:

Padding({
  ...
  EdgeInsetsGeometry padding,
  Widget child,
})

属性:

属性 说明
padding padding值,EdgeInsetss设置填充的值
child 子组件

EdgeInsetsGeometry是一个抽象类,开发中,我们一般都使用EdgeInsets类,它是EdgeInsetsGeometry的一个子类,定义了一些设置填充的便捷方法。
EdgeInsets
定义:

class EdgeInsets extends EdgeInsetsGeometry {
  // 分别指定四个方向的填充
  const EdgeInsets.fromLTRB(this.left, this.top, this.right, this.bottom);
  // 所有方向均使用相同数值的填充
  const EdgeInsets.all(double value)
    : left = value,
      top = value,
      right = value,
      bottom = value;
  // 可以设置具体某个方向的填充(可以同时指定多个方向)。
  const EdgeInsets.only({
    this.left = 0.0,
    this.top = 0.0,
    this.right = 0.0,
    this.bottom = 0.0,
  });
  // 用于设置对称方向的填充,vertical指top和bottom,horizontal指left和right。
  const EdgeInsets.symmetric({
    double vertical = 0.0,
    double horizontal = 0.0,
  }) : left = horizontal,
       top = vertical,
       right = horizontal,
       bottom = vertical;

EdgeInsets提供的便捷方法:

  • fromLTRB(double left, double top, double right, double
    bottom):分别指定四个方向的填充。
  • all(double value) : 所有方向均使用相同数值的填充。
  • only({left, top, right ,bottom }):可以设置具体某个方向的填充(可以同时指定多个方向)。
  • symmetric({ vertical, horizontal
    }):用于设置对称方向的填充,vertical指top和bottom,horizontal指left和right。
    示例:
    下面的示例主要展示了EdgeInsets的不同用法:
class PaddingTestRoute extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Padding(
      //上下左右各添加16像素补白
      padding: EdgeInsets.all(16.0),
      child: Column(
        //显式指定对齐方式为左对齐,排除对齐干扰
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          Padding(
            //左边添加8像素补白
            padding: const EdgeInsets.only(left: 8.0),
            child: Text("Hello world"),
          ),
          Padding(
            //上下各添加8像素补白
            padding: const EdgeInsets.symmetric(vertical: 8.0),
            child: Text("I am Jack"),
          ),
          Padding(
            // 分别指定四个方向的补白
            padding: const EdgeInsets.fromLTRB(20.0,.0,20.0,20.0),
            child: Text("Your friend"),
          )
        ],
      ),
    );
  }
}

运行效果如图所示:
在这里插入图片描述

发布了13 篇原创文章 · 获赞 38 · 访问量 2546

猜你喜欢

转载自blog.csdn.net/m0_46369686/article/details/104814876