1
1
import 'package:flutter/material.dart' ;
2
+ import 'package:flutter_ui_nice/page/navigation/navigation1/animations/home_page_animator.dart' ;
2
3
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' ;
4
6
5
7
class NavigationOneCoordinator extends StatefulWidget {
6
8
@override
7
9
_Coordinator createState () => _Coordinator ();
8
10
}
9
11
10
- class _Coordinator extends State <NavigationOneCoordinator > {
12
+ class _Coordinator extends State <NavigationOneCoordinator > with TickerProviderStateMixin {
13
+ AnimationController _controller;
14
+ HomePageAnimator _animator;
11
15
12
16
@override
13
17
void initState () {
14
18
super .initState ();
19
+ _controller = AnimationController (vsync: this , duration: Duration (milliseconds: 700 ));
20
+ _animator = HomePageAnimator (_controller);
15
21
}
16
22
17
- _onHomePressed () {
18
- debugPrint ("Home Pressed" );
19
- }
23
+ _onHomePressed () => _showHome ();
20
24
21
25
_onChatPressed () {
22
26
debugPrint ("Chat Pressed" );
@@ -49,14 +53,42 @@ class _Coordinator extends State<NavigationOneCoordinator> {
49
53
onProfilePressed: _onProfilePressed,
50
54
onSettingsPressed: _onSettingsPressed,
51
55
),
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
+ ),
53
68
],
54
69
),
55
70
),
56
71
);
57
72
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
+
58
89
@override
59
90
void dispose () {
60
91
super .dispose ();
92
+ _controller.dispose ();
61
93
}
62
94
}
0 commit comments