| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- import 'package:flutter/material.dart';
- import 'package:get/get.dart';
- import 'package:injectable/injectable.dart';
- import 'package:keyboard/base/base_controller.dart';
- import 'package:keyboard/resource/string.gen.dart';
- import '../../data/consts/event_report.dart';
- import '../../handler/event_handler.dart';
- import '../../router/app_page_arguments.dart';
- import '../../utils/atmob_log.dart';
- import 'enums/intimacy_analyse_tab.dart';
- /// 亲密度分析Controller
- @injectable
- class IntimacyAnalyseController extends BaseController
- with GetTickerProviderStateMixin {
- final String _tag = "IntimacyAnalyseController";
- /// Tab列表
- RxList<String> tabBarList =
- IntimacyAnalyseTab.values.map((item) => item.getTabName()).toList().obs;
- /// Tab控制器
- late final TabController tabController;
- /// PageView控制器
- late final PageController pageController;
- /// PageView是否允许滑动切换
- RxBool isPageViewSwipeEnabled = false.obs;
- @override
- void onInit() {
- super.onInit();
- _initArgs();
- }
- /// 初始化参数
- void _initArgs() {
- final arguments = Get.arguments as Map<String, dynamic>?;
- // 当前索引
- int tabIndex = IntimacyAnalyseTab.intimacyAnalyseScreenshotReply.tabIndex;
- if (arguments?[AppPageArguments.index] == null) {
- AtmobLog.i(_tag, '没有传递 index 参数');
- } else {
- final int? index = arguments?[AppPageArguments.index] as int?;
- if (index != null) {
- tabIndex = index;
- AtmobLog.i(_tag, "index: $tabIndex");
- }
- }
- // 创建PageController和TabController,并设置当前选中的index为初始索引
- pageController = PageController(initialPage: tabIndex);
- tabController = TabController(
- initialIndex: tabIndex,
- length: tabBarList.length,
- vsync: this,
- );
- if (tabIndex == IntimacyAnalyseTab.intimacyAnalyseReport.tabIndex) {
- EventHandler.report(EventId.event_09001);
- } else if (tabIndex ==
- IntimacyAnalyseTab.intimacyAnalyseScreenshotReply.tabIndex) {
- EventHandler.report(EventId.event_10001);
- }
- }
- /// 返回上一页
- void clickBack() {
- Get.back();
- }
- @override
- void onClose() {
- tabController.dispose();
- pageController.dispose();
- super.onClose();
- }
- /// 处理Tab切换,联动PageView
- void handleTabChange(int index) {
- pageController.animateToPage(
- index,
- duration: const Duration(milliseconds: 300),
- curve: Curves.fastOutSlowIn,
- );
- if (index == IntimacyAnalyseTab.intimacyAnalyseReport.tabIndex) {
- EventHandler.report(EventId.event_09001);
- } else if (index ==
- IntimacyAnalyseTab.intimacyAnalyseScreenshotReply.tabIndex) {
- EventHandler.report(EventId.event_10001);
- }
- }
- /// 处理PageView切换,联动Tab
- void handlePageChange(int index) {
- tabController.animateTo(index, duration: const Duration(milliseconds: 300));
- }
- }
|