我对这一切扑朔迷离。我到处搜索以找到解决此小问题的方法。 有没有办法更改状态栏的颜色? 另外,当我使用诸如colors.blue之类的颜色时,我可以看到状态栏中的文本质量不好。
谢谢
appBar: AppBar(
elevation : 0.0,
leading: IconButton(
icon: Icon(Icons.menu),
tooltip: 'Navigation menu',
onPressed: null,
),
actions: <Widget>[
IconButton(
icon: Icon(Icons.search),
tooltip: 'Search',
onPressed: null,
),
],
),
答案 0 :(得分:15)
@安东尼 基本上,您可以设置主题的亮度,也可以使用以下命令手动覆盖应用栏的亮度:
appBar: new AppBar(
title: new Text(widget.title),
brightness: Brightness.light, // or use Brightness.dark
),
请注意,这只会在白色和黑色状态文本颜色之间切换。
也许要使用更自定义的颜色,例如注释中说您可以查看SystemChrome类。
答案 1 :(得分:7)
当我不使用AppBar时,可以使用AnnotatedRegion
更改颜色。
import 'package:flutter/services.dart';
...
Widget build(BuildContext context) {
return Scaffold(
body: AnnotatedRegion<SystemUiOverlayStyle>(
value: SystemUiOverlayStyle.light,
child: ...,
),
);
}
答案 2 :(得分:3)
AnnotatedRegion
帮助您在iOS上更改状态栏文本的颜色。
import 'package:flutter/services.dart';
...
Widget build(BuildContext context) {
return AnnotatedRegion<SystemUiOverlayStyle>(
value: SystemUiOverlayStyle.dark,
child: ...,
);
}
但是,如果您在Scaffold中有AppBar,则只有AnnotatedRegion
无法正常工作。这是解决方法。
Widget build(BuildContext context) {
return AnnotatedRegion<SystemUiOverlayStyle>(
value: SystemUiOverlayStyle.dark, // play with this
child: Scaffold(
appBar: AppBar(
brightness: Brightness.light, // play with this
),
body: Container(),
);
}
答案 3 :(得分:2)
@Antoine这个问题令我头疼。我使用statusbarColor插件https://pub.dartlang.org/packages/flutter_statusbarcolor将状态栏颜色更改为黑色。然后,我将应用栏的亮度设置为暗,因为它是深色背景。
root
答案 4 :(得分:2)
对于iOS和Android:
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark.copyWith(
statusBarColor: Colors.white, // Color for Android
statusBarBrightness: Brightness.dark // Dark == white status bar -- for IOS.
));
答案 5 :(得分:2)
我在为不同的屏幕设置不同的状态栏颜色时遇到问题。我正在使用 slivers 并且可以在 SliverAppBars 中像在普通 AppBars 中一样设置亮度(影响状态栏颜色)。
SliverAppBar(
brightness: Brightness.light, //or Brightness.dark
//...
);
SliverAppBar 的亮度,如果为空,默认为 AppBarTheme.brightness、ThemeData.appBarTheme 或 ThemeData.primaryColorBrightness,如果其中任何一个为空。
AppBarTheme.brightness 设置示例:
MaterialApp(
//...
theme: ThemeData(
appBarTheme: AppBarTheme(brightness: Brightness.dark),
),
//...
);
答案 6 :(得分:0)
不要使用AnnotatedRegion
应用不应将 AppBar 与自己的 [AnnotatedRegion] 括起来。
你应该使用:
AppBar(
backwardsCompatibility: false,
systemOverlayStyle: SystemUiOverlayStyle(statusBarColor: Colors.orange),
)
答案 7 :(得分:-1)
我使用flutter_statusbar_text_color插件https://pub.dev/packages/flutter_statusbar_text_color将状态栏文本颜色更改为黑色。