flutter 设置状态栏颜色
导包:
import 'dart:io';
import 'package:flutter/services.dart';
修改状态栏代码:
if (Platform.isAndroid) {
// 以下两行 设置android状态栏为透明的沉浸。写在组件渲染之后,是为了在渲染后进行set赋值,覆盖状态栏,写在渲染之前MaterialApp组件会覆盖掉这个值。
SystemUiOverlayStyle systemUiOverlayStyle =
SystemUiOverlayStyle(statusBarColor: KColorConstant.personalColors);
SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
}
使用方法:
void main() {
runApp(MyApp());
if (Platform.isAndroid) {
// 以下两行 设置android状态栏为透明的沉浸。写在组件渲染之后,是为了在渲染后进行set赋值,覆盖状态栏,写在渲染之前MaterialApp组件会覆盖掉这个值。
SystemUiOverlayStyle systemUiOverlayStyle =
SystemUiOverlayStyle(statusBarColor: KColorConstant.personalColors);
SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
}
}
或者:
class Details extends StatelessWidget {
@override
Widget build(BuildContext context) {
if (Platform.isAndroid) {
// 以下两行 设置android状态栏为透明的沉浸。写在组件渲染之后,是为了在渲染后进行set赋值,覆盖状态栏,写在渲染之前MaterialApp组件会覆盖掉这个值。
SystemUiOverlayStyle systemUiOverlayStyle =
SystemUiOverlayStyle(statusBarColor: KColorConstant.personalColors);
SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
}
return MaterialApp(
theme: new ThemeData(
primaryColor: KColorConstant.personalColors,
),
routes: {'/GradListManage': (BuildContext context) => GradListManage()},
home: Details_Statefu());
}
}
修改状态字体颜色:
设置 AppBar brightness 属性值
appBar: AppBar(
brightness: Brightness.light,
)
Brightness.light 黑色
Brightness.dark 白色
不使用 appbar 的话 则用:
@override
Widget build(BuildContext context) {
return AnnotatedRegion<SystemUiOverlayStyle>(
value: SystemUiOverlayStyle.light,
child: Material(child:Scaffold(),),);
}
SystemUiOverlayStyle.light 白色
SystemUiOverlayStyle.dark 黑色
、注意:两者只能用一个,否则 会以 appbar 为主