intimacy_analyse_controller.dart 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import 'package:flutter/material.dart';
  2. import 'package:get/get.dart';
  3. import 'package:injectable/injectable.dart';
  4. import 'package:keyboard/base/base_controller.dart';
  5. import 'package:keyboard/resource/string.gen.dart';
  6. /// 亲密度分析Controller
  7. @injectable
  8. class IntimacyAnalyseController extends BaseController
  9. with GetTickerProviderStateMixin {
  10. /// Tab列表
  11. RxList<String> tabBarList =
  12. <String>[
  13. StringName.intimacyAnalyseTabReport,
  14. StringName.intimacyAnalyseTabScreenshotReply,
  15. ].obs;
  16. /// Tab控制器
  17. late final TabController tabController = TabController(
  18. length: tabBarList.length,
  19. vsync: this,
  20. );
  21. /// PageView控制器
  22. final PageController pageController = PageController();
  23. /// 返回上一页
  24. void clickBack() {
  25. Get.back();
  26. }
  27. @override
  28. void onClose() {
  29. tabController.dispose();
  30. pageController.dispose();
  31. super.onClose();
  32. }
  33. /// 处理Tab切换,联动PageView
  34. void handleTabChange(int index) {
  35. pageController.animateToPage(
  36. index,
  37. duration: const Duration(milliseconds: 300),
  38. curve: Curves.easeInToLinear,
  39. );
  40. }
  41. /// 处理PageView切换,联动Tab
  42. void handlePageChange(int index) {
  43. tabController.animateTo(index, duration: const Duration(milliseconds: 300));
  44. }
  45. }