controller.dart 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import 'dart:ui';
  2. import 'package:electronic_assistant/base/base_controller.dart';
  3. import 'package:electronic_assistant/resource/assets.gen.dart';
  4. import 'package:electronic_assistant/resource/colors.gen.dart';
  5. import 'package:electronic_assistant/resource/string.gen.dart';
  6. import 'package:electronic_assistant/utils/expand.dart';
  7. import 'package:flutter/cupertino.dart';
  8. import 'package:flutter/material.dart';
  9. import 'package:get/get.dart';
  10. class MainController extends BaseController {
  11. final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
  12. final List<TabBean> tabBeans = [
  13. TabBean(
  14. StringName.mainTabHome,
  15. Assets.images.mainTabHomeUnSelect.path,
  16. Assets.images.mainTabHomeSelected.path,
  17. "#969696".toColor(),
  18. ColorName.primaryTextColor),
  19. TabBean(
  20. StringName.mainTabFile,
  21. Assets.images.mainTabFileUnSelect.path,
  22. Assets.images.mainTabFileSelected.path,
  23. "#969696".toColor(),
  24. ColorName.primaryTextColor),
  25. ];
  26. final _currentIndex = 0.obs;
  27. int get currentIndex => _currentIndex.value;
  28. void changeIndex(int index) {
  29. _currentIndex.value = index;
  30. }
  31. void updateIndex(int index) {
  32. _currentIndex.value = index;
  33. }
  34. void updateIndexByPageName(String pageName) {
  35. for (var value in tabBeans) {
  36. if (value.title == pageName) {
  37. _currentIndex.value = tabBeans.indexOf(value);
  38. break;
  39. }
  40. }
  41. }
  42. void openDrawer() {
  43. scaffoldKey.currentState?.openDrawer();
  44. }
  45. void closeDrawer() {
  46. scaffoldKey.currentState?.closeDrawer();
  47. }
  48. }
  49. class TabBean {
  50. final String title;
  51. final String normalIcon;
  52. final String selectedIcon;
  53. final Color txtNormalColor;
  54. final Color txtSelectedColor;
  55. TabBean(this.title, this.normalIcon, this.selectedIcon, this.txtNormalColor,
  56. this.txtSelectedColor);
  57. }