alibaba / fish-redux

An assembled flutter application framework.
https://github.com/alibaba/fish-redux
Apache License 2.0
7.33k stars 843 forks source link

设置statusbar的颜色问题 #687

Closed yiky84119 closed 4 years ago

yiky84119 commented 4 years ago

代码中main() 中设置了主题颜色

SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark);

然后应用内部分页面需要将statusbar的颜色设置成白色,尝试了在page的effect的Lifecycle.initState和Lifecycle.build中设置代码

SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light);

状态都未能修改成功,热更新的过程中如何在build中设置对应代码可以设置成功。 或者用flutter默认的StatefulWidget创建Page中的某个组件,然后在StatefulWidget的build方法中设置

SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light);

可以设置成功。

想请教下在fish-redux的page如何有效设置修改。

laznrbfe commented 4 years ago

如果你用了AppBar, 可以看一下这段源码

下面这段代码或许能解决你的问题。

Widget buildView(SettingsState state, Dispatch dispatch, ViewService viewService) {
  return Scaffold(
    appBar: AppBar(
      centerTitle: true,
      elevation: 0.0,
      title: Text('设置'),
      brightness: Brightness.dark, // Brightness.dark | Brightness.light 与 SystemUiOverlayStyle.light | SystemUiOverlayStyle.dark
    ),
  );
}
yiky84119 commented 4 years ago

如果你用了AppBar, 可以看一下这段源码

下面这段代码或许能解决你的问题。

Widget buildView(SettingsState state, Dispatch dispatch, ViewService viewService) {
  return Scaffold(
    appBar: AppBar(
      centerTitle: true,
      elevation: 0.0,
      title: Text('设置'),
      brightness: Brightness.dark, // Brightness.dark | Brightness.light 与 SystemUiOverlayStyle.light | SystemUiOverlayStyle.dark
    ),
  );
}

没有使用AppBar,用AppBar就不用SystemChrome.setSystemUIOverlayStyle来设置了