Skip to content

Commit 71d702e

Browse files
committed
home page, animations, refactor structure 🍻
1 parent 66b2fc8 commit 71d702e

File tree

5 files changed

+80
-6
lines changed

5 files changed

+80
-6
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:flutter_ui_nice/const/color_const.dart';
3+
4+
class HomePage extends StatelessWidget {
5+
HomePage(this.onMenuPressed);
6+
final VoidCallback onMenuPressed;
7+
8+
@override
9+
Widget build(BuildContext context) {
10+
return Container(
11+
decoration: BoxDecoration(
12+
borderRadius: BorderRadius.circular(10.0),
13+
gradient: LinearGradient(
14+
begin: Alignment.topLeft,
15+
end: Alignment.bottomRight,
16+
colors: [YELLOW, GREEN, BLUE],
17+
),
18+
boxShadow: <BoxShadow>[
19+
BoxShadow(
20+
color: Colors.black26,
21+
offset: Offset(2.0, 1.0),
22+
blurRadius: 10.0,
23+
)
24+
],
25+
),
26+
child: Center(
27+
child: RaisedButton(onPressed: onMenuPressed, child: Text("Open Menu"),),
28+
),
29+
);
30+
}
31+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import 'package:flutter/widgets.dart';
2+
3+
class HomePageAnimator {
4+
HomePageAnimator(this.controller) :
5+
translateLeft = Tween(begin: 0.0, end: -200.0).animate(controller),
6+
scaleDown = Tween(begin: 1.0, end: 0.8).animate(controller);
7+
8+
final AnimationController controller;
9+
final Animation<double> translateLeft;
10+
final Animation<double> scaleDown;
11+
}

lib/page/navigation/navigation1/coordinator.dart

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,26 @@
11
import 'package:flutter/material.dart';
2+
import 'package:flutter_ui_nice/page/navigation/navigation1/animations/home_page_animator.dart';
23
import 'package:flutter_ui_nice/page/navigation/navigation1/widgets/menu_buttons.dart';
3-
import 'package:flutter_ui_nice/page/navigation/widgets/background_common.dart';
4+
import 'package:flutter_ui_nice/page/navigation/common/widgets/background_common.dart';
5+
import 'package:flutter_ui_nice/page/navigation/common/pages/home_page.dart';
46

57
class NavigationOneCoordinator extends StatefulWidget {
68
@override
79
_Coordinator createState() => _Coordinator();
810
}
911

10-
class _Coordinator extends State<NavigationOneCoordinator> {
12+
class _Coordinator extends State<NavigationOneCoordinator> with TickerProviderStateMixin {
13+
AnimationController _controller;
14+
HomePageAnimator _animator;
1115

1216
@override
1317
void initState() {
1418
super.initState();
19+
_controller = AnimationController(vsync: this, duration: Duration(milliseconds: 700));
20+
_animator = HomePageAnimator(_controller);
1521
}
1622

17-
_onHomePressed() {
18-
debugPrint("Home Pressed");
19-
}
23+
_onHomePressed() => _showHome();
2024

2125
_onChatPressed() {
2226
debugPrint("Chat Pressed");
@@ -49,14 +53,42 @@ class _Coordinator extends State<NavigationOneCoordinator> {
4953
onProfilePressed: _onProfilePressed,
5054
onSettingsPressed: _onSettingsPressed,
5155
),
52-
)
56+
),
57+
58+
AnimatedBuilder(
59+
animation: _controller,
60+
builder: (context, widget) => Transform(
61+
alignment: Alignment.centerLeft,
62+
transform: Matrix4
63+
.translationValues(_animator.translateLeft.value, 0.0, 0.0)
64+
..scale(_animator.scaleDown.value),
65+
child: HomePage(() => _openMenu()),
66+
),
67+
),
5368
],
5469
),
5570
),
5671
);
5772

73+
Future _openMenu() async {
74+
try {
75+
await _controller.forward().orCancel;
76+
} on TickerCanceled {
77+
print("Animation Failed");
78+
}
79+
}
80+
81+
Future _showHome() async {
82+
try {
83+
await _controller.reverse().orCancel;
84+
} on TickerCanceled {
85+
print("Animation Failed");
86+
}
87+
}
88+
5889
@override
5990
void dispose() {
6091
super.dispose();
92+
_controller.dispose();
6193
}
6294
}

lib/page/navigation/widgets/statistics_page.dart

Whitespace-only changes.

0 commit comments

Comments
 (0)