Flutter實(shí)戰(zhàn) 填充(Padding)

2021-03-08 10:11 更新

Padding可以給其子節(jié)點(diǎn)添加填充(留白),和邊距效果類似。我們在前面很多示例中都已經(jīng)使用過它了,現(xiàn)在來看看它的定義:

  1. Padding({
  2. ...
  3. EdgeInsetsGeometry padding,
  4. Widget child,
  5. })

EdgeInsetsGeometry是一個(gè)抽象類,開發(fā)中,我們一般都使用EdgeInsets類,它是EdgeInsetsGeometry的一個(gè)子類,定義了一些設(shè)置填充的便捷方法。

#EdgeInsets

我們看看EdgeInsets提供的便捷方法:

  • fromLTRB(double left, double top, double right, double bottom):分別指定四個(gè)方向的填充。
  • all(double value) : 所有方向均使用相同數(shù)值的填充。
  • only({left, top, right ,bottom }):可以設(shè)置具體某個(gè)方向的填充(可以同時(shí)指定多個(gè)方向)。
  • symmetric({ vertical, horizontal }):用于設(shè)置對稱方向的填充,verticaltopbottom,horizontalleftright。

#示例

下面的示例主要展示了EdgeInsets的不同用法,比較簡單,源碼如下:

  1. class PaddingTestRoute extends StatelessWidget {
  2. @override
  3. Widget build(BuildContext context) {
  4. return Padding(
  5. //上下左右各添加16像素補(bǔ)白
  6. padding: EdgeInsets.all(16.0),
  7. child: Column(
  8. //顯式指定對齊方式為左對齊,排除對齊干擾
  9. crossAxisAlignment: CrossAxisAlignment.start,
  10. children: <Widget>[
  11. Padding(
  12. //左邊添加8像素補(bǔ)白
  13. padding: const EdgeInsets.only(left: 8.0),
  14. child: Text("Hello world"),
  15. ),
  16. Padding(
  17. //上下各添加8像素補(bǔ)白
  18. padding: const EdgeInsets.symmetric(vertical: 8.0),
  19. child: Text("I am Jack"),
  20. ),
  21. Padding(
  22. // 分別指定四個(gè)方向的補(bǔ)白
  23. padding: const EdgeInsets.fromLTRB(20.0,.0,20.0,20.0),
  24. child: Text("Your friend"),
  25. )
  26. ],
  27. ),
  28. );
  29. }
  30. }

運(yùn)行效果如圖5-1所示:

圖5-1

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號