更新资料
现在
CupertinoNavigationBar也有一个
brightness属性。
旧答案
这是不可能的。
CupertinoNavigationBar使用此方法
_wrapWithBackground()定义状态栏是亮还是暗,因此
SystemChrome.setSystemUIOverlayStyle()永远不会考虑您使用的设置。
一个典型的解决方案是创建自己的扩展导航栏
CupertinoNavigationBar,但这在这种情况下不容易实现,因为
CupertinoNavigationBar它具有私有的
State并调用其他私有的类和方法。
实际上,
CupertinoNavigationBar如果与进行比较,则设计不佳
AppBar,因为它考虑了三个属性来定义其亮度:
brightness
可以通过构造函数传递的参数;ThemeData.AppBarTheme.brightness
;ThemeData.primaryColorBrightness
。
请注意,有一个属性可以指定Cupertino
Widgets的亮度,该属性是
CupertinoThemeData.brightness,但(在奇怪的情况下)不将其视为inside
_wrapWithBackground()。
已经有一个问题了。您应该等待Flutter团队的回应,但是在此之前,您可以使用此替代方法。



