ios - 如何更改状态文本栏颜色
问题描述
我正在尝试使用 CupertinoNavigationBar 将状态栏文本颜色放入 Brightness Light
我已经尝试将带有 statusBarColor 和亮度的 SystemUiOverlayStyle 放在主要位置,但不起作用 状态栏中的文本需要是白色的
void main() {
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
systemNavigationBarColor: Colors.white,
statusBarColor: Colors.white,
statusBarBrightness: Brightness.light,
statusBarIconBrightness: Brightness.light
));
runApp(MyApp());
}
我正在尝试为 ios 和 android 创建 appbar,但我想将状态栏文本颜色设为 Light,我设置了一个条件,如果是 ios,我创建 CupertinoNavigationBar(),如果是 android,我放置正常的 AppBar(),如果只是具有亮度的 AppBar,他可以正常工作,但是使用 CupertinoNavigationBar(),没有
解决方案
更新
现在CupertinoNavigationBar
也有brightness
房产了。
旧答案
这是不可能的。
CupertinoNavigationBar
使用该方法_wrapWithBackground()
来定义状态栏是亮还是暗,因此您所做的设置SystemChrome.setSystemUIOverlayStyle()
永远不会被考虑。
一个典型的解决方案是创建自己的扩展导航栏CupertinoNavigationBar
,但在这种情况下这并不容易,因为CupertinoNavigationBar
有一个私有的State
并调用其他私有类和方法。
事实上,CupertinoNavigationBar
如果与 相比AppBar
,它的设计很糟糕,它考虑了三个属性来定义其亮度:
brightness
可以通过构造函数传递的参数;ThemeData.AppBarTheme.brightness
;ThemeData.primaryColorBrightness
.
请注意,有一个属性可以指定 Cupertino Widgets 的亮度,它是CupertinoThemeData.brightness
,但(奇怪的是)内部没有考虑它_wrapWithBackground()
。
推荐阅读
- unit-testing - 如果同时进行单元测试,则会发生错误
- java - 在多维数组中设置一个数字等于一个单词
- excel - 从用户表单提交到数据库时,VBA缩短超链接图像路径
- python - 如何检查列表是否为空
- centos - Microsoft Edge 访问虚拟主机时出现错误 INET_E_RESOURCE_NOT_FOUND
- list - 如何将独特的单元格范围发送到列出的电子邮件?
- python-3.x - python得到分段错误:OS 10.13上的11
- typescript - 错误 TS2300:重复的标识符“A”。但只有一个 A 的类声明
- matlab - 将matlab上的m*n图像矩阵右移
- android - 如何在 android 中记录查询 SQLite 查询?