Skip to content

Commit a290d7c

Browse files
authored
Merge pull request #36 from FlutterOpen/dev
Dev
2 parents 1425164 + 3cc5afa commit a290d7c

File tree

6 files changed

+147
-0
lines changed

6 files changed

+147
-0
lines changed

lib/const/page_item_const.dart

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,4 +202,14 @@ const PAGE_ITEMS = [
202202
"img": PageImage.FLUTTER_OPEN,
203203
"click": PageName.ANIM_HERO,
204204
},
205+
{
206+
"title": PageName.ANIM_FADE_TRANS,
207+
"img": PageImage.FLUTTER_OPEN,
208+
"click": PageName.ANIM_FADE_TRANS,
209+
},
210+
{
211+
"title": PageName.ANIM_POSITION_TRANS,
212+
"img": PageImage.FLUTTER_OPEN,
213+
"click": PageName.ANIM_POSITION_TRANS,
214+
},
205215
];

lib/const/page_name_const.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,6 @@ class PageName {
4545
static const ANIM_CONTAINER = "AnimationContainer";
4646
static const ANIM_CROSS_FADE = "AnimationCrossFade";
4747
static const ANIM_HERO = "HeroPage";
48+
static const ANIM_FADE_TRANS = "FadeTranstion";
49+
static const ANIM_POSITION_TRANS = "PositionTransition";
4850
}

lib/main.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ class FlutterOpenApp extends StatelessWidget {
5959
PageName.ANIM_CONTAINER: (context) => AnimatedContainerPage(),
6060
PageName.ANIM_CROSS_FADE: (context) => AnimCrossFadePage(),
6161
PageName.ANIM_HERO: (context) => HeroPage(),
62+
PageName.ANIM_FADE_TRANS: (context) => FadeTransitionPage(),
63+
PageName.ANIM_POSITION_TRANS: (context) => PositionTransitionPage(),
6264
},
6365
);
6466
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
///
2+
/// Created by NieBin on 2019/6/8
3+
/// Github: https://github.com/nb312
4+
/// Email: niebin312@gmail.com
5+
import "package:flutter/material.dart";
6+
import 'package:flutter_widgets/const/_const.dart';
7+
8+
class FadeTransitionPage extends StatefulWidget {
9+
@override
10+
_FadeTransitionState createState() => _FadeTransitionState();
11+
}
12+
13+
class _FadeTransitionState extends State<FadeTransitionPage>
14+
with SingleTickerProviderStateMixin {
15+
Animation<double> _opacityAnim;
16+
AnimationController _controller;
17+
18+
Widget _fadeTrans() => FadeTransition(
19+
opacity: _opacityAnim,
20+
child: Text(
21+
"Hello world",
22+
style: TextStyle(color: RED_LIGHT),
23+
),
24+
);
25+
@override
26+
void initState() {
27+
_controller =
28+
AnimationController(duration: Duration(seconds: 3), vsync: this);
29+
CurvedAnimation curvedAnimation =
30+
CurvedAnimation(parent: _controller, curve: Curves.easeOut);
31+
_opacityAnim = Tween(begin: 0.0, end: 1.0).animate(curvedAnimation);
32+
super.initState();
33+
}
34+
35+
@override
36+
Widget build(BuildContext context) {
37+
return Scaffold(
38+
appBar: AppBar(
39+
title: Text(PageName.ANIM_FADE_TRANS),
40+
),
41+
body: Column(
42+
children: <Widget>[
43+
_fadeTrans(),
44+
FloatingActionButton(
45+
child: Text("Click Me"),
46+
onPressed: () {
47+
_controller.reset();
48+
_controller.forward();
49+
},
50+
)
51+
],
52+
),
53+
);
54+
}
55+
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
///
2+
/// Created by NieBin on 2019/6/9
3+
/// Github: https://github.com/nb312
4+
/// Email: niebin312@gmail.com
5+
///
6+
import "package:flutter/material.dart";
7+
import 'package:flutter_widgets/const/_const.dart';
8+
9+
class PositionTransitionPage extends StatefulWidget {
10+
@override
11+
_PositionTransState createState() => _PositionTransState();
12+
}
13+
14+
class _PositionTransState extends State<PositionTransitionPage>
15+
with SingleTickerProviderStateMixin {
16+
Animation<RelativeRect> _rectAnim;
17+
AnimationController _controller;
18+
19+
Widget _positionTrans() => PositionedTransition(
20+
rect: _rectAnim,
21+
child: Container(
22+
color: BLUE_DEEP,
23+
child: Text("Hello world"),
24+
),
25+
);
26+
27+
Widget _positionClick() => FloatingActionButton(
28+
child: Text("position click"),
29+
onPressed: () {
30+
_controller.reset();
31+
_controller.forward();
32+
},
33+
);
34+
35+
@override
36+
void initState() {
37+
_controller =
38+
AnimationController(vsync: this, duration: Duration(seconds: 3));
39+
CurvedAnimation _curve =
40+
CurvedAnimation(parent: _controller, curve: Curves.easeOut);
41+
_rectAnim = RelativeRectTween(
42+
begin: RelativeRect.fromLTRB(00.0, 0.0, 0.0, 0.0),
43+
end: RelativeRect.fromLTRB(100.0, 100.0, 0, 00),
44+
).animate(_curve)
45+
..addListener(() {
46+
print("value = $_rectAnim");
47+
});
48+
49+
super.initState();
50+
}
51+
52+
@override
53+
Widget build(BuildContext context) {
54+
return Scaffold(
55+
appBar: AppBar(
56+
title: Text(PageName.ANIM_POSITION_TRANS),
57+
),
58+
body: Column(
59+
mainAxisAlignment: MainAxisAlignment.start,
60+
crossAxisAlignment: CrossAxisAlignment.center,
61+
children: <Widget>[
62+
Container(
63+
constraints: BoxConstraints.expand(width: 200, height: 200),
64+
color: RED_LIGHT,
65+
child: Stack(
66+
children: <Widget>[
67+
_positionTrans(),
68+
],
69+
),
70+
),
71+
_positionClick()
72+
],
73+
),
74+
);
75+
}
76+
}

lib/page/anim/_anim.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,5 @@ export "AnimationPage.dart";
66
export 'AnimatedContainerPage.dart';
77
export 'AnimCrossFadePage.dart';
88
export 'HeroPage.dart';
9+
export 'FadeTransitionPage.dart';
10+
export 'PositionTransitionPage.dart';

0 commit comments

Comments
 (0)