import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:get/get.dart'; import 'package:wallpaper/common/models/wallpaper_model.dart'; import 'package:wallpaper/generated/assets.dart'; import 'package:wallpaper/generated/json/base/json_convert_content.dart'; import 'package:wallpaper/modules/home/home_cls/home_cls_view.dart'; class HomeController extends GetxController with GetTickerProviderStateMixin { static HomeController get to => Get.find(); late TabController tabController; var wallpaperModelList = []; var clsPages = []; @override void onReady() async { super.onReady(); // 读取json文件,获取数据 var data = jsonDecode(await rootBundle.loadString(Assets.jsonWallpaper)); if (data != null && data is List) { wallpaperModelList = data.map((e) => WallpaperModel.fromJson(e)).toList(); } wallpaperModelList = JsonConvert.fromJsonAsT>(data) ?? []; tabController = TabController(length: wallpaperModelList.length, vsync: this); clsPages = wallpaperModelList.asMap().entries.map((e) => HomeClsView(index: e.key)).toList(); refresh(); } @override void onClose() { tabController.dispose(); super.onClose(); } /// 获取分类下的壁纸 WallpaperModel getWallpaperData(int index) { return wallpaperModelList[index]; } }