@override
Widget build(BuildContext context) {
return MaterialApp(
home: AnnotatedRegion<SystemUiOverlayStyle>(
value: SystemUiOverlayStyle(
statusBarColor: Colors.transparent, // transparent status bar
systemNavigationBarColor: Colors.black, // navigation bar color
statusBarIconBrightness: Brightness.dark, // status bar icons' color
systemNavigationBarIconBrightness: Brightness.dark, //navigation bar icons' color
),
child: Scaffold(
body: _getBody(context),
),
),
);
}
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarIconBrightness: Brightness.dark, // dark text for status bar
statusBarColor: Colors.transparent));
9条答案
按热度按时间jhdbpxl91#
您可以将
AnnotatedRegion
小部件与SystemUiOverlayStyle
一起使用来更改镶边样式。您可以阅读更多关于SystemUiOverlayStyle here的功能。
bkhjykvo2#
是的,* 在Android* 上可以做到这一点。
要做到这一点,你可以使用
SystemChrome
。该类提供了一个setSystemUIOverlayStyle
方法,你可以这样使用它:请记住,这只适用于等于或高于
Android M
的Android版本,并且您需要在状态栏下方绘制,以避免Scaffold
自动添加的填充。您可以使用以下命令来完成此操作:5ssjco0h3#
您也可以在运行主.dart文件中的应用程序之前广泛地执行此操作:
c6ubokkw4#
推荐(使用Flutter 2.0)
不要使用
AnnotatedRegion
,如docs中所述应用程序不应使用自己的AnnotatedRegion将AppBar括起来。
首选方法是使用
systemOverlayStyle
属性:js4nwp545#
@sander-dalby-larsen解决方案工作得很好,但是状态栏图标颜色成为一个问题。下面的解决方案使状态栏
transparent
和状态栏图标和导航栏颜色为black
。jucafojl6#
我正在寻找解决方案,为相同的,我找到了一种方法来做这个transparent statusbar icons内你的
Widget build(BuildContext context){ }
只是添加下面的行,,当使用深色主题时,它会使状态栏透明,图标为白色
灯光主题也是如此
我不确定你是否在寻找这个或不同的东西,但这对我来说非常好
kqlmhetl7#
这将有助于使状态栏透明
比如:
vddsk6oq8#
只需在Scafold body参数周围填充。
如果您scaffold有appBar
dw1jzc5e9#
最简单的方法是导入services.dart并使用SystemUIOverlayStyle: