flutter 设置状态栏颜色、背景色的几种方式和实现
SystemChrome
先引入
import 'package:flutter/services.dart';
一般编辑器都会有智能的补全,比如安卓特别喜欢的IDEA,vs code的Dart插件也有这个功能,鼠标放在报错的地方,然后选择quick fix就会自动添加依赖;
本来这个小功能不应该写一个单独的文章,但是因为为了大家找起来方便就单独开了,可能大家网上也一搜一大把,但是我希望我这个成为一个入门系列,包含一个最基本的应用必须学的东西,嘻嘻
正题
开始设置
设置状态栏颜色
SystemUiOverlayStyle systemUiOverlayStyle = SystemUiOverlayStyle(statusBarColor: Colors.transparent,statusBarIconBrightness:Brightness.dark);
SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
其他还有很多 语法
(new) SystemUiOverlayStyle SystemUiOverlayStyle({Color systemNavigationBarColor, Color systemNavigationBarDividerColor, Brightness systemNavigationBarIconBrightness, Color statusBarColor, Brightness statusBarBrightness, Brightness statusBarIconBrightness})
格式化的参数
const SystemUiOverlayStyle({
this.systemNavigationBarColor,
this.systemNavigationBarDividerColor,
this.systemNavigationBarIconBrightness,
this.statusBarColor,
this.statusBarBrightness,
this.statusBarIconBrightness,
});
这时候你可能会想,背景色怎么设计,嘿嘿,设置不了,不过可以设置透明度,安卓默认是50%,flutter默认是100%;
但是想要背景色呢,那就修改body咯,因为这是全浸式的。
效果图

(安卓好像是4.4开始才有全浸式,这真是一个伟大的设计,背景就可以是图像咯)
AppBar
脚手架里面设置appbar
brightness: Brightness.light,
Scaffold(
appBar: AppBar(
brightness: Brightness.light,
title: Text('注册'),
),
)
不过,如果用不到appBar的话,就需要下面这种方式,比如登陆界面就不需要上面的帽子了。
AnnotatedRegion
AnnotatedRegion Widget可以实现只修改状态栏字体颜色
value: SystemUiOverlayStyle.dark
AnnotatedRegion<SystemUiOverlayStyle>(
value: SystemUiOverlayStyle.dark,
child: new Scaffold(
...代码
)
)
相关链接
--END--