实现代码:
import 'dart:io';
import 'package:flutter/services.dart';
void main() {
runApp(MyApp());
// 沉浸式状态栏
if (Platform.isAndroid) {
// 以下两行 设置android状态栏为透明的沉浸。写在组件渲染之后,是为了在渲染后进行set赋值,覆盖状态栏,写在渲染之前MaterialApp组件会覆盖掉这个值。
SystemUiOverlayStyle systemUiOverlayStyle =
SystemUiOverlayStyle(statusBarColor: Colors.transparent);
SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
}
}
可能部分App页面背景色是白色,导致沉浸式状态栏的文字颜色与背景色一致,从而让文字无法看清。
解决办法:
使用AnnotatedRegion,可以使得状态栏颜色改变,有dark和light两种
return AnnotatedRegion<SystemUiOverlayStyle>(
value: SystemUiOverlayStyle.dark,//dark或light
child: Material(
child:Scaffold(),
),
);