-
Notifications
You must be signed in to change notification settings - Fork 10
/
theme.dart
68 lines (57 loc) · 1.67 KB
/
theme.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_wanandroid/utils/shared_preferences.dart';
/// provider 主题修改
class AppTheme with ChangeNotifier{
static final List<MaterialColor> materialColors = [
Colors.blue,
Colors.lightBlue,
Colors.red,
Colors.pink,
Colors.purple,
Colors.grey,
Colors.orange,
Colors.amber,
Colors.yellow,
Colors.lightGreen,
Colors.green,
Colors.lime
];
MaterialColor _mThemeColor;
AppTheme(this._mThemeColor);
// defaultTargetPlatform == TargetPlatform.iOS ? kIOSTheme :kAndroidTheme,
MaterialColor get themeColor => _mThemeColor ;
// 根据 Platform 设置主题
ThemeData get themeDate => defaultTargetPlatform == TargetPlatform.iOS ? getIOSTheme() :getAndroidTheme();
// iOS浅色主题
ThemeData getIOSTheme(){
return ThemeData(
primarySwatch: getDefaultTheme(),
buttonColor: getDefaultTheme(),
brightness: Brightness.dark,
//深色主题
accentColor: Color(0xFF888888)
);
}
ThemeData getAndroidTheme(){
return ThemeData(
primarySwatch: getDefaultTheme(),
buttonColor: getDefaultTheme(),
brightness: Brightness.light,
//亮色主题
accentColor: Color(0xFF888888)
);
}
/// 获取默认主题
static MaterialColor getDefaultTheme() {
return materialColors[SPUtils.getThemeColorIndex()];
}
/// 修改主题颜色
void changeTheme(int colorIndex){
_mThemeColor = materialColors[colorIndex];
/// 保存主题索引值
SPUtils.saveThemeColorIndex(colorIndex);
notifyListeners();
}
}