#flutter
Вопрос:
В собственной разработке iOS я могу определить динамический цвет для использования как в темном, так и в светлом режиме, как это:
[UIColor colorWithDynamicProvider:^UIColor * _Nonnull(UITraitCollection * _Nonnull trait) {
if (trait.userInterfaceStyle == UIUserInterfaceStyleDark) {
return UIColorRGB(0x000000);
} else {
return UIColorRGB(0xFFFFFF);
}
}];
В Flutter я знаю, что могу установить эти два цвета в тему приложения MaterialApp и свойство цвета darkTheme, которое будет делать то же самое. Но количество свойств цвета тематических данных не бесконечно. И я не думаю, что цвет, который я хочу создать, имеет какое-то отношение к имени свойства, например, primaryColor или canvasColor и так далее (на самом деле цвет, который я хочу создать, может использоваться в приложении только один раз).
Итак, какова наилучшая практика в Flutter для управления цветами в светлом и темном режимах?
Комментарии:
1. Я делал это в своей практической работе. Вот ссылка на Github — github.com/Kishan-Dhankecha/vegcart
Ответ №1:
Если я правильно вас понял. Вы можете проверить текущую тему с помощью
Theme.of(context).brightness == Brightness.dark
Theme.of(context).brightness == Brightness.dark
? return Color(0xFF2F6EA5)
: return Colors.red;
Ответ №2:
Добавьте мое собственное решение к еще одному варианту, любой может сослаться на ответ Sucper и мой ответ для вашего собственного состояния
class AppColors {
static Color L_F4F5F7_D_2B323D() {
final Brightness brightness =
WidgetsBinding.instance!.platformDispatcher.platformBrightness;
return brightness == Brightness.light ? Color(0xFFF4F5F7) : Color(0xFF2B323D);
}
static Color L_FFF7E5_D_393730() {
final Brightness brightness =
WidgetsBinding.instance!.platformDispatcher.platformBrightness;
return brightness == Brightness.light ? Color(0xFFFFF7E5) : Color(0xFF393730);
}
}