【发布时间】:2023-03-30 15:30:01
【问题描述】:
我正在使用 FLUTTER,设计指的是状态栏的黑色 并且状态栏的图标颜色必须为白色 那么如何改变状态栏图标的颜色呢?
【问题讨论】:
-
我需要更改状态栏图标的颜色而不是状态栏颜色
-
嗨,我在 Android 10 中遇到了同样的问题
我正在使用 FLUTTER,设计指的是状态栏的黑色 并且状态栏的图标颜色必须为白色 那么如何改变状态栏图标的颜色呢?
【问题讨论】:
要将icon 更改为白色,请在build 方法中尝试以下操作:
import 'package:flutter_statusbarcolor/flutter_statusbarcolor.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
FlutterStatusbarcolor.setStatusBarColor(Colors.white);
FlutterStatusbarcolor.setStatusBarWhiteForeground(true);
...
}
setStatusBarWhiteForeground 方法如果设置为 true,则将文本和图标的颜色更改为白色,否则颜色将为黑色。
更多信息在这里: https://github.com/mchome/flutter_statusbarcolor/blob/master/lib/flutter_statusbarcolor.dart#L29
【讨论】:
在lib/main.dart文件中添加这个sn-p。
class App extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
// This code changes background color and icon color of status bar
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
// statusBarColor is used to set Status bar color in Android devices.
statusBarColor: Colors.transparent,
// To make Status bar icons color white in Android devices.
statusBarIconBrightness: Brightness.light,
// statusBarBrightness is used to set Status bar icon color in iOS.
statusBarBrightness: Brightness.dark,
// Here light means dark icon color for Status bar.
));
// material app widget
return MaterialApp(
// Status bar color
theme: ThemeData(
appBarTheme: AppBarTheme(
// Brightness.dark will show white color icon
brightness: Brightness.dark,
),
),
color: Colors.white,
title: 'App',
home: Scaffold(),
);
}
}
这个link 也会对你有所帮助。
【讨论】:
更新:
使用AppBar.systemOverlayStyle:
AppBar(
systemOverlayStyle: SystemUiOverlayStyle(
statusBarBrightness: Brightness.dark, // For iOS: (light icons)
statusBarIconBrightness: Brightness.dark, // For Android: (dark icons)
statusBarColor: ...,
),
)
【讨论】: