深色模式
Flutter状态栏与导航栏设置
显示模式
dart
static Future<void> setEnabledSystemUIMode(SystemUiMode mode, { List<SystemUiOverlay>? overlays })
mode是枚举值:
dart
enum SystemUiMode {
leanBack,
immersive, // 沉浸式,触摸后退出
immersiveSticky, // 沉浸式,保持
edgeToEdge, // 内容延伸到状态栏与导航栏下,此时状态栏与导航栏背景透明
manual,
}
如果mode
传了SystemUiMode.manual
,则必须传overlays
参数,overlays
的元素也是枚举值:
dart
enum SystemUiOverlay {
top, // 显示状态栏
bottom, // 显示导航栏
}
如果overlays
传[]
,则状态栏与导航栏都不显示,如果overlays
传[top, bottom]
则都显示,也可以只传其中1个。
改变样式
dart
static void setSystemUIOverlayStyle(SystemUiOverlayStyle style)
style
dart
const SystemUiOverlayStyle({
this.systemNavigationBarColor, // 导航栏颜色,Android O 以上有效
this.systemNavigationBarDividerColor, // 导航栏分割线颜色,Android P 以上有效
this.systemNavigationBarIconBrightness, // 导航栏icon的明暗,Android O 以上有效
this.systemNavigationBarContrastEnforced, // 导航栏强制对比度,true: 如果导航栏是透明的,会强制加上一个背景,以保证对比度
this.statusBarColor, // 状态栏颜色,Android M 以上有效
this.statusBarBrightness, // 状态栏明暗,iOS 有效
this.statusBarIconBrightness, // 状态栏icon的明暗,Android M 以上有效
this.systemStatusBarContrastEnforced, // 状态栏强制对比度,true: 如果状态栏是透明的,会强制加上一个背景,以保证对比度
});