【发布时间】:2019-12-22 07:34:58
【问题描述】:
我知道我们可以使用以下方法更改状态栏:
但是文档提到AppBar 会自动设置状态栏颜色,所以我的问题是,当我有一个AppBar 时,如何设置状态栏颜色,但我想定义我自己一个特定的颜色,而不是让AppBar 自动完成?
【问题讨论】:
我知道我们可以使用以下方法更改状态栏:
但是文档提到AppBar 会自动设置状态栏颜色,所以我的问题是,当我有一个AppBar 时,如何设置状态栏颜色,但我想定义我自己一个特定的颜色,而不是让AppBar 自动完成?
【问题讨论】:
我想自己定义一个特定的颜色,而不是让 AppBar 自动完成?
使用 SystemChrome 将覆盖 Appbar 设置。
如果您想自己设置颜色,请使用您曾经提到过的以下函数或在 initstate 函数中。
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor: Colors.yellow.shade600,
statusBarBrightness: Brightness.light,
statusBarIconBrightness: Brightness.dark,
));
这将覆盖 Appbar 设置
【讨论】:
AppBar之前的构建函数中定义它,所以我猜它必须在initState中?在它调用导航到新路线之前,我让它工作在前一个屏幕中。
StatelessWidget,所以我将它保留在导航中,因为我不想仅仅因为这个而转换为StatefulWidget,谢谢!
补充说明:状态栏图标颜色
如果状态栏图标未更改为深色或浅色模式。确保在 appbar 中添加亮度。
appbar :Appbar (
brightness: Brightness.light,),
可以像上面一样更改为 .dark 或 .light
【讨论】: