在main.dart中
void main() {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
statusBarColor: Colors.black.withOpacity(0), //top bar color
statusBarIconBrightness: Brightness.dark, //top bar icons
systemNavigationBarColor: Colors.black, //bottom bar color
systemNavigationBarIconBrightness: Brightness.light, //bottom bar icons
),
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
//primaryColor: Color.fromRGBO(113, 201, 206, 1),
fontFamily: 'Montserrat',
textTheme: TextTheme(
headline: TextStyle(
fontSize: 40,
fontWeight: FontWeight.w500,
),
title: TextStyle(
fontWeight: FontWeight.w700,
fontSize: 16,
),
body1: TextStyle(
fontSize: 12,
),
),
),
home: Test(),
routes: {
MainScreen.routeName: (context) => MainScreen(),
},
);
}
}
我正在使用上面的代码来更改状态栏的颜色,statusBarIconBrightness: Brightness.dark
无效。
它变黑,但几秒钟后又切换回“ Brightness.light”。
怎么了?
在Android模拟器上运行。
我不想将appBar
小部件插入Test()
。
答案 0 :(得分:2)
答案 1 :(得分:0)
我正在尝试类似的操作,但是状态栏是透明的而不是蓝色。我添加了以下内容,并且有效:
theme: ThemeData(
appBarTheme: AppBarTheme(
brightness: Brightness.light,
答案 2 :(得分:0)
@CopsOnRoad 的回答对我有用,但有点扭曲。您有时会看到 Brightness
类以这种有趣的方式制造混乱。意思是,如果你想让状态栏图标变成白色,你必须使用 Brightness.dark
而不是 Brightness.light
。我就是这样做的,然后轰隆隆!它开始工作了。只需接受@CopsOnRoad 的回答并将light
更改为dark
。至少这对我有用。
我得出的结论是,在这种特殊情况下,设置 Brightness.light
意味着“将状态栏图标的颜色更改为适合浅色状态栏(白色或类似颜色的状态栏背景)的某种颜色,这意味着系统将设置图标变黑,以便用户能够看到图标。
希望这有帮助!