starwork_flutter/lib/views/home/home_controller.dart
2025-09-03 09:39:06 +08:00

47 lines
1.4 KiB
Dart

import 'package:carousel_slider/carousel_controller.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:starwork_flutter/base/app_permission.dart';
import 'package:starwork_flutter/base/base_controller.dart';
class HomeController extends BaseController {
final isOpenNotificationPermission = false.obs;
var carouselCurrentIndex = 0.obs;
// 渐变颜色列表
final List<Color> gradientColors = [
const Color(0xFFBFCBEF), // #bfcbef
const Color(0xFFECBE9B), // 原来的颜色
const Color(0xFFD5F3D5), // 清新绿色
const Color(0xFFFFB6C1), // 温柔粉色
];
// 当前渐变颜色
var currentGradientColor = const Color(0xFFBFCBEF).obs;
@override
void onInit() async {
super.onInit();
isOpenNotificationPermission.value = await AppPermission.checkPermission(
permission: Permission.notification,
);
// 监听轮播图切换,更新渐变颜色
carouselCurrentIndex.listen((index) {
updateGradientColor(index);
});
}
// 根据轮播图索引更新渐变颜色
void updateGradientColor(int index) {
if (index < gradientColors.length) {
currentGradientColor.value = gradientColors[index];
} else {
// 如果索引超出颜色数量,使用模运算轮环
currentGradientColor.value = gradientColors[index % gradientColors.length];
}
}
}