WallPaper_FSX_Flutter/lib/modules/home/home_controller.dart
2024-05-13 13:44:27 +08:00

41 lines
1.4 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<HomeController>();
late TabController tabController;
var wallpaperModelList = <WallpaperModel>[];
var clsPages = <HomeClsView>[];
@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<List<WallpaperModel>>(data) ?? <WallpaperModel>[];
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];
}
}