在android 中全局修改状态栏颜色比较常用的方法,如下是设置黑底白字的状态栏设置方式
runApp(MyApp());
if (Platform.isAndroid) {
SystemUiOverlayStyle systemUiOverlayStyle = SystemUiOverlayStyle(statusBarColor:Colors.black,statusBarIconBrightness: Brightness.light);
SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
}
预期效果如下
然而在部分页面中却存在这种颜色与文字颜色相同的情况
几番测试才发现是appBar 的background 属性会影响状态栏的字体颜色,由于我在全局的AppBarTheme设置中background设为了白色,所以在白色appBar页面中状态栏的字体颜色会自动修改。
经测试发现在AppBarTheme中同样添加sysTemOVerLayStyle属性可以固定颜色
appBarTheme: AppBarTheme(
...
backgroundColor:Colors.white,
...
systemOverlayStyle: SystemUiOverlayStyle(statusBarColor:Colors.black,statusBarIconBrightness: Brightness.light),
),
同理也可在具体页面的AppBar中设置该属性,原理暂不明确