我正在尝试添加一个主题列表,用户可以选择一个,这是我的列表
import 'package:flutter/material.dart';
class ThemeModel {
final Color surface;
final Color primary;
final Color secondary;
final Color onSurface;
ThemeModel({
required this.surface,
required this.primary,
required this.secondary,
required this.onSurface,
});
}
final List<ThemeModel> themes = [
ThemeModel(
surface: Color(0xFFF0EAD6),
primary: Color(0xFF6C9A8B),
secondary: Color(0xFFA67C52),
onSurface: Color(0xFF3B3A36),
),
ThemeModel(
surface: Color(0xFFF5F5F5),
primary: Color(0xFF6D6875),
secondary: Color(0xFFFFB4A2),
onSurface: Color(0xFF2D2D2D),
),
ThemeModel(
surface: Color(0xFFF0F8FF),
primary: Color(0xFFA2C7E5),
secondary: Color(0xFF89B0AE),
onSurface: Color(0xFF2F3E46),
),
];
我将显示一个列表,他们可以选择一个可以保存数字的列表,例如 chosenTheme,现在我有一个像这样的 ThemeData
ThemeData myTheme = ThemeData(
fontFamily: 'estedad',
useMaterial3: true,
//brightness: chosenTheme <= 2 ? Brightness.light : Brightness.dark,
colorScheme:
chosenTheme <= 2
? ColorScheme.light(
surface: cards[chosenTheme].themes.surface,
primary: cards[chosenTheme].themes.primary,
secondary: cards[chosenTheme].themes.secondary,
onSurface: cards[chosenTheme].themes.onSurface,
)
: ColorScheme.dark(
surface: cards[chosenTheme].themes.surface,
primary: cards[chosenTheme].themes.primary,
secondary: cards[chosenTheme].themes.secondary,
onSurface: cards[chosenTheme].themes.onSurface,
),
);
如何在主题提供程序中将其设置为应用程序默认主题?