Padding
Padding可以給其子節(jié)點添加補白(填充),我們在前面很多示例中都已經(jīng)使用過它了乐纸,現(xiàn)在來看看它的定義:
Padding({
...
EdgeInsetsGeometry padding,
Widget child,
})
EdgeInsetsGeometry是一個抽象類鳖枕,開發(fā)中琳猫,我們一般都使用EdgeInsets,它是EdgeInsetsGeometry的一個子類略就,定義了一些設(shè)置補白的便捷方法。
EdgeInsets
我們看看EdgeInsets提供的便捷方法:
- fromLTRB(double left, double top, double right, double bottom):分別指定四個方向的補白晃酒。
- all(double value) : 所有方向均使用相同數(shù)值的補白表牢。
- only({left, top, right ,bottom }):可以設(shè)置具體某個方向的補白(可以同時指定多個方向)。
- symmetric({ vertical, horizontal }):用于設(shè)置對稱方向的補白掖疮,vertical指top和bottom初茶,horizontal指left和right。
示例
class _home extends StatefulWidget {
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return _homeState();
}
}
class _homeState extends State<_home> {
@override
Widget build(BuildContext context) {
// TODO: implement build
return new Scaffold(
appBar: new AppBar(
title: new Text("title"),
centerTitle: true,
),
body: //通過ConstrainedBox來確保Stack占滿屏幕
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"),
)
],
),
));
}
}