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.

69 lines
1.9KB

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