在初始屏幕上,我使用AnnotatedRegion将状态栏的颜色更改为白色。
AnnotatedRegion<SystemUiOverlayStyle>(
value: SystemUiOverlayStyle.light.copyWith(statusBarColor: Colors.white),
child: ...
)上面的代码将状态栏颜色更改为白色,但它也会影响应用程序中我没有使用AnnotatedRegion的其他屏幕,现在所有这些屏幕的状态栏都是白色的,那么我如何将其恢复为这些特定屏幕上的默认值。
在其他一些堆栈溢出答案上看到了类似下面的内容,但它们在我的案例中不起作用:
SystemChrome.setEnabledSystemUIOverlays(SystemUiOverlay.values);
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark);那么,我如何才能使状态栏以默认行为返回,即它自动具有比应用程序栏的任何颜色更暗的颜色?
发布于 2020-05-31 01:58:02
在AnnotatedRegion<SystemUiOverlayStyle>中环绕每个屏幕
如果你已经在每个屏幕上安装了AppBar,你应该配置它的亮度
AppBar本身将内容包装在AnnotatedRegion中,并将其value: overlayStyle设置为
final Brightness brightness = widget.brightness
?? appBarTheme.brightness
?? theme.primaryColorBrightness;
final SystemUiOverlayStyle overlayStyle = brightness == Brightness.dark
? SystemUiOverlayStyle.light
: SystemUiOverlayStyle.dark;首先尝试解决您的问题,请将所有屏幕的AppBar亮度设置为所需的值,如下例所示
Page1:
Scaffold(appBar: AppBar(brightness: Brightness.dark))Page2:
Scaffold(appBar: AppBar(brightness: Brightness.light))https://stackoverflow.com/questions/62101879
复制相似问题