doc: update flutter.md #179 #58

This commit is contained in:
jaywcjlove 2022-11-27 22:42:25 +08:00
parent 029e2751c4
commit d09737fcda

View File

@ -421,8 +421,6 @@ SizedBox(
在实际开发中Container常常用于对一个组件进行包装修饰。 在实际开发中Container常常用于对一个组件进行包装修饰。
```dart ```dart
// 将Contianer大小固定为100 * 100 背景色为蓝色。
// 把Text包裹在Container中并将其居中
Container( Container(
width: 100, width: 100,
height: 100, height: 100,
@ -430,9 +428,10 @@ Container(
alignment: Alignment.center, alignment: Alignment.center,
child: Text('Hello world'), child: Text('Hello world'),
), ),
``` ```
`Contianer` 大小固定为 `100 * 100` 背景色为蓝色。把 `Text` 包裹在 `Container` 中,并将其居中
### Column ### Column
列布局(Column),可以将多个子组件沿着垂直的方向摆放(竖的摆放) 列布局(Column),可以将多个子组件沿着垂直的方向摆放(竖的摆放)
@ -461,7 +460,6 @@ Column(
行布局(Row),可以将多个组件沿水平的方向摆放。 行布局(Row),可以将多个组件沿水平的方向摆放。
```dart ```dart
// 在同一行摆放3个Button
Row( Row(
children: [ children: [
ElevatedButton( ElevatedButton(
@ -480,12 +478,13 @@ Row(
), ),
``` ```
在同一行摆放 3 个 `Button`
### Wrap ### Wrap
将子组件从左到右依次排列,当空间不足时自动换行。 将子组件从左到右依次排列,当空间不足时自动换行。
```dart ```dart
// 显示多个Flutter 的logo并自动换行
Wrap( Wrap(
children: [ children: [
FlutterLogo(), FlutterLogo(),
@ -498,14 +497,14 @@ Wrap(
), ),
``` ```
显示多个 `Flutter``logo` 并自动换行
### Stack ### Stack
Stack 可以将一多个子组件叠在一起显示。堆叠顺序按照children属性中的列表依次堆叠摆放默认将子控件沿左上角对齐。 Stack 可以将一多个子组件叠在一起显示。堆叠顺序按照children属性中的列表依次堆叠摆放默认将子控件沿左上角对齐。
需要控制子控件位置可以嵌套`Positoned`控件。 需要控制子控件位置可以嵌套`Positoned`控件。
```dart ```dart
// 依次堆叠300*300的蓝色色块、200*200的黑色色块、
// 100*100的黄色色块
Stack( Stack(
children: [ children: [
Container( Container(
@ -527,6 +526,8 @@ Stack(
), ),
``` ```
依次堆叠 `300*300` 的蓝色色块、`200*200` 的黑色色块、`100*100` 的黄色色块
### Positioned ### Positioned
<!--rehype:wrap-class=row-span-2--> <!--rehype:wrap-class=row-span-2-->
若需要控制Stack中子控件的位置则可以嵌套改控件。 若需要控制Stack中子控件的位置则可以嵌套改控件。
@ -605,12 +606,14 @@ Container(
### Flex ### Flex
Flex 的用法与Row或Column类似但只需要额外传入direction参数。 Flex 的用法与 `Row``Column` 类似,但只需要额外传入 `direction` 参数
Row 和 Column组件都继承Flex组件。
设置direction 为Axis.horizontal 表示水平方向(Row)为Axis.vertical则为垂直方向(Column)。 - `Row``Column` 组件都继承 `Flex` 组件
- 设置 `direction``Axis.horizontal` 表示水平方向(`Row`),为 `Axis.vertical`则为垂直方向(`Column`)
垂直方向依次摆放3个flutter logo
```dart ```dart
// 垂直方向依次摆放3个flutter logo
Flex( Flex(
direction: Axis.vertiacl, direction: Axis.vertiacl,
children[ children[
@ -619,7 +622,11 @@ Flex(
Fluterlogo(), Fluterlogo(),
], ],
), ),
// 水平方向依次摆放3个flutter logo ```
水平方向依次摆放 3 个 flutter logo
```dart
Flex( Flex(
dirction: Axis.horizontal, dirction: Axis.horizontal,
children: [ children: [
@ -631,8 +638,9 @@ Flex(
``` ```
### Expaneded ### Expaneded
<!--rehype:wrap-class=row-span-2-->
Expanded 用于扩张一个子组件。可以通过flex属性用于表示该组件相对其他弹性组件放大的倍数(可以理解为一个权重)。 Expanded 用于扩张一个子组件。可以通过 `flex` 属性,用于表示该组件相对其他弹性组件放大的倍数(可以理解为一个权重)。
```dart ```dart
// Container 会占满剩余的全部空用空间 // Container 会占满剩余的全部空用空间
@ -671,16 +679,14 @@ Row(
``` ```
### Flexible ### Flexible
<!--rehype:wrap-class=row-span-2-->
Flexible 是Expanded组件的父类。 `Flexible``Expanded` 组件的父类。
与Expanded不同的是Flexible可以通过fit属性设置子控件是否必须占满Flexibal扩展的空间。而Expaned默认子控件必须占满。 `Expanded` 不同的是,`Flexible` 可以通过 `fit` 属性设置子控件是否必须占满 `Flexibal` 扩展的空间。而 `Expaned` 默认子控件必须占满
将Flexible的fit属性设置为tingt就等价于使用Expanded。
```dart ```dart
// 如果将fit设置为tight // 如果将fit设置为tight
// 则绿色Container 和蓝色Container大小一样。 // 则绿色Container 和蓝色Container大小一样。
// 如果将fit设置为loose // 如果将fit设置为loose
// 则两个Flexible扩展的空间大小是一样的 // 则两个Flexible扩展的空间大小是一样的
// 但绿色Container并不会填充整个扩展的空间。 // 但绿色Container并不会填充整个扩展的空间。
@ -705,9 +711,11 @@ Row(
), ),
``` ```
`Flexible``fit` 属性设置为 `tingt`,就等价于使用 `Expanded`
### Spacer ### Spacer
Spacer 用于在布局中留白。例如,需要文本和图标位于一个行的两端,而中间留白时。就可以使用Spacer。 Spacer 用于在布局中留白
```dart ```dart
Row( Row(
@ -719,6 +727,8 @@ Row(
), ),
``` ```
例如,需要文本和图标位于一个行的两端,而中间留白时。就可以使用 `Spacer`
另见 另见
--- ---