Как изменить цвет навигации и строки состояния в зависимости от темы в Flutter? - PullRequest
0 голосов
/ 17 октября 2019

В моем MaterialApp я использую свойства theme и darkTheme, чтобы он мог использовать преимущества, когда пользователь переключает свою глобальную тему устройства. Тем не менее, я сталкиваюсь с проблемой, когда строка состояния и панель навигации не меняются, когда пользователь переключает темы. Я использую систему маршрутов, поэтому у меня нет ничего в моем свойстве home, у меня просто есть initialRoute.

У меня есть код, подобный этому на начальной странице маршрута:

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Builder(builder: (BuildContext context) {
      final MediaQueryData mediaQuery = MediaQuery.of(context);

      if (mediaQuery.platformBrightness == Brightness.dark) {
        Themes.setDarkSystemColors();
      } else {
        Themes.setLightSystemColors();
      }

      return Scaffold(
        appBar: CustomAppBar(title: "Home"),
        drawer: CustomDrawer(),
        body: SizedBox(),
      );
    });
  }
}

Но это работает только когда я перезагружаю приложение и когда меняю темы, оно не работает. Я знаю, что мне, вероятно, придется перестроить MaterialApp, но я не знаю, как это сделать. Я думал, может быть, InheritedWidget, но я не знаю. Было бы здорово, если бы кто-нибудь мог мне помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...