как реализовать тёмный режим во флаттере - PullRequest
0 голосов
/ 14 февраля 2020

Я хочу создать приложение-флаттер, в котором есть 2 темы светлого и темного режима, которые меняются в приложении переключателя, а по умолчанию используется тема по умолчанию android theme.
Мне нужно передать некоторый пользовательский цвет собеседнику. виджет и я не хочу просто настроить материал темы.

  • как определить тему по умолчанию для пользовательского устройства?
  • Второй вопрос: как создать тему для всего приложения?
  • В-третьих, как сменить тему простым переключателем во время работы?

1 Ответ

3 голосов
/ 15 февраля 2020
MaterialApp(
  theme: ThemeData.light(),
  /// theme: ThemeData.dark(),
)

Вниз по дереву виджетов, вы можете получить доступ к ThemeData, просто написав Theme.of(context). Если вы хотите получить доступ к текущим ThemeData и предоставить свой собственный стиль для определенного поля, вы можете сделать для экземпляра:

Widget build(BuildContext context) {
  var themeData = Theme.of(context).copyWith(scaffoldBackgroundColor: darkBlue)

  return Scaffold(
    backgroundColor = themeData.scaffoldBackgroundColor,
  );
}

Но для обработки состояния ThemeData (изменения его значения) вам необходимо реализовать правильное государственное управление.

...