Container(
height: ScreenUtil.screenHeight,
color: Color(0xFF007AFF),
child: AnnotatedRegion(
// 设置 AppBar 颜色属性
value:SystemUiOverlayStyle.light,
),
);
如 AnnotatedRegion 下 value 属性值就是对应的 light模式还是dark模式,如果Container 是最外层容器,状态栏背景色就是透明的,看到的效果就是上面的color色值,也可以在initState()时给状态栏设置指定的背景色
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(statusBarColor: Colors.red));
setSystemUIOverlayStyle 即设置状态栏颜色
设置状态栏字体颜色Widget build(BuildContext context) {
ScreenUtil.init(context, width: 360, height: 640);
FToast().init(context);
return Scaffold(
backgroundColor: Colors.redAccent,
appBar: AppBar(
title: Text('Title dark'),
centerTitle: true,
elevation: 0,
bottom: null,
backgroundColor: Colors.orangeAccent,
brightness:
Brightness.dark,
),
body: Container(),
);
}
Widget build(BuildContext context) {
ScreenUtil.init(context, width: 360, height: 640);
FToast().init(context);
return Scaffold(
backgroundColor: Colors.blue,
appBar: AppBar(
title: Text('Title light'),
centerTitle: true,
elevation: 0,
bottom: null,
backgroundColor: Colors.orangeAccent,
brightness:
Brightness.light,
),
body: Container(),
);
}
效果图
如果AppBar属性toolbarHeight设置了为 0 ,则brightness相关属性就会失效.Scaffold 也有适配底部输入框不被键盘遮挡
综上可以使用 AnnotatedRegion SystemChrome
或者 Scaffold 使用对应属性进行状态栏相关属性设置.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)