Skip to content

Commit ade6fbe

Browse files
committed
doc: update docs/flutter.md #830
1 parent feba5e1 commit ade6fbe

File tree

1 file changed

+41
-45
lines changed

1 file changed

+41
-45
lines changed

docs/flutter.md

Lines changed: 41 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ $ sudo softwareupdate --install-rosetta --agree-to-license
4141
<!--rehype:className=style-timeline-->
4242

4343
### Windows 操作系统上安装和配置
44+
<!--rehype:wrap-class=col-span-2-->
4445

4546
> 完整教程请参阅 Flutter 中文社区的 [安装和环境配置](https://docs.flutter.cn/get-started/install)
4647

@@ -783,7 +784,8 @@ ListView.separated(
783784
```
784785

785786
### GridView
786-
<!--rehype:wrap-class=col-span-2-->
787+
<!--rehype:wrap-class=col-span-2 row-span-2-->
788+
787789
`GridView`可将元素显示为二维网格状的列表组件,并支持主轴方向滚动。
788790
使用GridView() 构造函数,需要传入gridDelegate和children。Flutter中已经提供了两种实现方式,分别是:
789791

@@ -892,14 +894,17 @@ PageView.builder(
892894
),
893895
),
894896
```
895-
## flutter动画组件
897+
898+
Flutter 动画组件
899+
---
896900

897901
### 1.隐式动画
898902

899-
> 在动画组件内,直接配置curve和duration属性
903+
在动画组件内,直接配置curve和duration属性
900904

901905
#### AnimatedContainer
902-
> 使用AnimatedContainer组件,配置curve曲线过渡和duration过渡时间
906+
907+
使用AnimatedContainer组件,配置curve曲线过渡和duration过渡时间
903908

904909
```dart
905910
class HomeState extends StatefulWidget{
@@ -942,7 +947,8 @@ class _HomeState extends State<HomeState>{
942947
```
943948

944949
#### AnimatedPadding
945-
> 通过配置padding值的改变,引起组件的移动动画效果,同样支持curve和duration的配置
950+
951+
通过配置padding值的改变,引起组件的移动动画效果,同样支持curve和duration的配置
946952

947953
```dart
948954
class _HomeState extends State<HomeState>{
@@ -979,7 +985,8 @@ class _HomeState extends State<HomeState>{
979985
```
980986

981987
#### AnimatedAlign
982-
> 通过配置alignment值的改变,引起组件的对齐动画效果,同样支持curve和duration的配置
988+
989+
通过配置alignment值的改变,引起组件的对齐动画效果,同样支持curve和duration的配置
983990

984991
```dart
985992
class _HomeState extends State<HomeState>{
@@ -1017,7 +1024,7 @@ class _HomeState extends State<HomeState>{
10171024

10181025
#### AnimatedOpacity
10191026

1020-
>通过配置opacity值的改变,引起组件的透明度变化动画效果,同样支持curve和duration的配置
1027+
通过配置opacity值的改变,引起组件的透明度变化动画效果,同样支持curve和duration的配置
10211028

10221029
```dart
10231030
class _HomeState extends State<HomeState>{
@@ -1052,9 +1059,10 @@ class _HomeState extends State<HomeState>{
10521059
}
10531060
}
10541061
```
1062+
10551063
#### AnimatedPositioned
10561064

1057-
> 通过配置top,left,right,bottom值的改变,引起组件的距离变化动画效果,同样支持curve和duration的配置
1065+
通过配置top,left,right,bottom值的改变,引起组件的距离变化动画效果,同样支持curve和duration的配置
10581066

10591067
```dart
10601068
class _HomeState extends State<HomeState>{
@@ -1094,12 +1102,13 @@ class _HomeState extends State<HomeState>{
10941102
```
10951103

10961104
### 2.显示动画
1105+
<!--rehype:wrap-class=col-span-2-->
10971106

1098-
> 使用显示动画,定义AnimationController,在组件上with SingleTickerProviderStateMixin
1107+
使用显示动画时,定义 `AnimationController`,并在组件中使用 `SingleTickerProviderStateMixin`
10991108

11001109
#### RotationTransition
11011110

1102-
>RotationTransition实现旋转动画,turns为AnimationController,可以在initState初始化的时候设置vsync,duration来让程序和手机的刷新频率统一,使用..联级操作调用repeat函数让动画重复运动
1111+
`RotationTransition` 实现旋转动画,`turns``AnimationController`。在 `initState` 中设置 `vsync``duration`,使用 `..repeat()` 实现动画循环。
11031112

11041113
```dart
11051114
class _Boxed extends State<Boxed> with SingleTickerProviderStateMixin{
@@ -1111,7 +1120,7 @@ class _Boxed extends State<Boxed> with SingleTickerProviderStateMixin{
11111120
_controller = AnimationController(
11121121
vsync: this,
11131122
duration: const Duration(seconds: 1)
1114-
)..repeat(); //让程序和手机的刷新频率统一
1123+
)..repeat(); // 让程序和手机的刷新频率统一
11151124
}
11161125
11171126
@override
@@ -1129,18 +1138,6 @@ class _Boxed extends State<Boxed> with SingleTickerProviderStateMixin{
11291138

11301139
#### AnimationController
11311140

1132-
> controller的播放方式
1133-
>
1134-
> repeat 重复
1135-
>
1136-
> forward 播放一次
1137-
>
1138-
> reverse 倒序播放
1139-
>
1140-
> stop 停止
1141-
>
1142-
> reset 重置
1143-
11441141
```dart
11451142
class _HomeState extends State<HomeState> with SingleTickerProviderStateMixin {
11461143
@@ -1149,37 +1146,38 @@ class _HomeState extends State<HomeState> with SingleTickerProviderStateMixin {
11491146
@override
11501147
void initState() {
11511148
super.initState();
1152-
_controller =
1153-
AnimationController(vsync: this, duration: const Duration(seconds: 1));//让程序和手机的刷新频率统一
1149+
// 让程序和手机的刷新频率统一
1150+
_controller = AnimationController(vsync: this, duration: const Duration(seconds: 1));
11541151
}
11551152
11561153
@override
11571154
Widget build(BuildContext context) {
11581155
return MaterialApp(
11591156
home: Scaffold(
1160-
floatingActionButton:FloatingActionButton(onPressed: (){
1157+
floatingActionButton:FloatingActionButton(onPressed: () {
11611158
_controller.repeat(); //重复播放
11621159
},child:const Icon(Icons.add),) ,
11631160
appBar: AppBar(
11641161
title: const Text("测试"),
11651162
),
11661163
body: Center(
11671164
child: Column(
1168-
children: [RotationTransition(
1169-
turns: _controller,
1170-
child: const FlutterLogo(size: 60),
1171-
),
1172-
ElevatedButton(onPressed: (){
1173-
_controller.forward(); //播放一次
1174-
}, child:const Icon(Icons.refresh)),
1165+
children: [
1166+
RotationTransition(
1167+
turns: _controller,
1168+
child: const FlutterLogo(size: 60),
1169+
),
11751170
ElevatedButton(onPressed: (){
1176-
_controller.reverse(); //倒序播放
1171+
_controller.forward(); // 👈 播放一次
11771172
}, child:const Icon(Icons.refresh)),
11781173
ElevatedButton(onPressed: (){
1179-
_controller.stop(); //停止
1174+
_controller.reverse(); // 👈 倒序播放
11801175
}, child:const Icon(Icons.refresh)),
11811176
ElevatedButton(onPressed: (){
1182-
_controller.reset(); //重置
1177+
_controller.stop(); // 👈 停止
1178+
}, child:const Icon(Icons.refresh)),
1179+
ElevatedButton(onPressed: (){
1180+
_controller.reset(); // 👈 重置
11831181
}, child:const Icon(Icons.refresh)),
11841182
]
11851183
)
@@ -1192,7 +1190,7 @@ class _HomeState extends State<HomeState> with SingleTickerProviderStateMixin {
11921190

11931191
#### FadeTransition
11941192

1195-
>RotationTransition实现透明度变化动画,opacity为AnimationController,可以在initState初始化的时候设置vsync,duration来让程序和手机的刷新频率统一,同时controller为0-1的值,因此opacity会发生从透明到实体的过程,如果要实现实体逐渐到透明可以使用reverse()倒序播放
1193+
`FadeTransition` 实现透明度变化,`opacity``AnimationController`。可以通过 `reverse()` 实现从实体逐渐变透明。
11961194

11971195
```dart
11981196
class _HomeState extends State<HomeState> with SingleTickerProviderStateMixin {
@@ -1202,8 +1200,8 @@ class _HomeState extends State<HomeState> with SingleTickerProviderStateMixin {
12021200
@override
12031201
void initState() {
12041202
super.initState();
1205-
_controller =
1206-
AnimationController(vsync: this, duration: const Duration(seconds: 1));//让程序和手机的刷新频率统一
1203+
//让程序和手机的刷新频率统一
1204+
_controller = AnimationController(vsync: this, duration: const Duration(seconds: 1));
12071205
}
12081206
12091207
@override
@@ -1227,22 +1225,20 @@ class _HomeState extends State<HomeState> with SingleTickerProviderStateMixin {
12271225
}
12281226
```
12291227

1230-
> 也可以通过lowerBound和upperBound来配置controller的最低和最高值
1228+
也可以通过 lowerBound 和 upperBound 来配置 controller 的最低和最高值
12311229

12321230
#### ScaleTransition
12331231

1234-
> ScaleTransition实现放大缩小动画,scale为AnimationController,可以在initState初始化的时候设置vsync,duration来让程序和手机的刷新频率统一,同时controller为0-1的值,因此scale会发生从小到大的过程,如果要实现大逐渐到小可以使用reverse()倒序播放
1232+
`ScaleTransition` 实现缩放动画,`scale``AnimationController`,可以通过 `reverse()` 实现从大到小的动画效果。
12351233

12361234
```dart
12371235
class _HomeState extends State<HomeState> with SingleTickerProviderStateMixin {
1238-
12391236
late AnimationController _controller;
1240-
12411237
@override
12421238
void initState() {
12431239
super.initState();
1244-
_controller =
1245-
AnimationController(vsync: this, duration: const Duration(seconds: 1));//让程序和手机的刷新频率统一
1240+
// 让程序和手机的刷新频率统一
1241+
_controller = AnimationController(vsync: this, duration: const Duration(seconds: 1));
12461242
}
12471243
12481244
@override

0 commit comments

Comments
 (0)