11import 'package:flutter/material.dart' ;
2+ import 'package:flutter_ui_nice/page/navigation/navigation1/animations/home_page_animator.dart' ;
23import '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
57class 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 () {
2226debugPrint ("Chat Pressed" );
@@ -49,14 +53,42 @@ class _Coordinator extends State<NavigationOneCoordinator> {
4953onProfilePressed: _onProfilePressed,
5054onSettingsPressed: _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
5990void dispose () {
6091super .dispose ();
92+ _controller.dispose ();
6193}
6294}
0 commit comments