You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
2.0KB

  1. import 'package:farm_tpf/presentation/screens/home/home.dart';
  2. import 'package:farm_tpf/presentation/screens/profile/sc_update_profile.dart';
  3. import 'package:farm_tpf/utils/const_color.dart';
  4. import 'package:flutter/material.dart';
  5. import 'drawer_user_controller.dart';
  6. import 'home_drawer.dart';
  7. class NavigationHomeScreen extends StatefulWidget {
  8. static Route route() {
  9. return MaterialPageRoute<void>(builder: (_) => NavigationHomeScreen());
  10. }
  11. @override
  12. _NavigationHomeScreenState createState() => _NavigationHomeScreenState();
  13. }
  14. class _NavigationHomeScreenState extends State<NavigationHomeScreen> {
  15. Widget screenView;
  16. DrawerIndex drawerIndex;
  17. @override
  18. void initState() {
  19. drawerIndex = DrawerIndex.Home;
  20. screenView = HomePage();
  21. super.initState();
  22. }
  23. @override
  24. Widget build(BuildContext context) {
  25. return Container(
  26. color: COLOR_CONST.DEFAULT,
  27. child: SafeArea(
  28. top: false,
  29. bottom: false,
  30. child: Scaffold(
  31. backgroundColor: COLOR_CONST.WHITE,
  32. body: DrawerUserController(
  33. screenIndex: drawerIndex,
  34. drawerWidth: MediaQuery.of(context).size.width * 0.75,
  35. onDrawerCall: (DrawerIndex drawerIndexdata) {
  36. changeIndex(drawerIndexdata);
  37. //callback from drawer for replace screen as user need with passing DrawerIndex(Enum index)
  38. },
  39. screenView: screenView,
  40. //we replace screen view as we need on navigate starting screens like MyHomePage, HelpScreen, FeedbackScreen, etc...
  41. ),
  42. ),
  43. ),
  44. );
  45. }
  46. void changeIndex(DrawerIndex drawerIndexdata) {
  47. if (drawerIndex != drawerIndexdata) {
  48. drawerIndex = drawerIndexdata;
  49. if (drawerIndex == DrawerIndex.Home) {
  50. setState(() {
  51. screenView = HomePage();
  52. });
  53. } else if (drawerIndex == DrawerIndex.Setting) {
  54. setState(() {
  55. screenView = UpdateProfileScreen();
  56. });
  57. } else {
  58. //do in your way......
  59. }
  60. }
  61. }
  62. }