Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 我能';当应用程序栏出现在flatter中时,不要更改Android状态栏的颜色_Flutter - Fatal编程技术网

Flutter 我能';当应用程序栏出现在flatter中时,不要更改Android状态栏的颜色

Flutter 我能';当应用程序栏出现在flatter中时,不要更改Android状态栏的颜色,flutter,Flutter,我想更改Android中状态栏和应用程序栏的背景色,但我不知道怎么做 下面是我的示例代码和屏幕截图 代码: 导入“包装:颤振/材料.省道”; 导入“包:flifter/services.dart”; void main(){ runApp(MyApp()); } 类MyApp扩展了无状态小部件{ //此小部件是应用程序的根。 @凌驾 小部件构建(构建上下文){ 返回材料PP( 标题:“颤振演示”, 主题:主题数据( 主样本:颜色。蓝色, 视觉密度:视觉密度。自适应平台密度, ), 主页:MyHo

我想更改Android中状态栏和应用程序栏的背景色,但我不知道怎么做

下面是我的示例代码和屏幕截图

代码:

导入“包装:颤振/材料.省道”;
导入“包:flifter/services.dart”;
void main(){
runApp(MyApp());
}
类MyApp扩展了无状态小部件{
//此小部件是应用程序的根。
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“颤振演示”,
主题:主题数据(
主样本:颜色。蓝色,
视觉密度:视觉密度。自适应平台密度,
),
主页:MyHomePage(),
);
}
}
类MyHomePage扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
德雷吉翁酒店(
值:SystemUIOverlyStyle(
statusBarColor:Colors.black,
),
孩子:脚手架(
appBar:appBar(
背景颜色:Colors.red,
),
主体:中心(),
),
);
}
}
屏幕截图:

更新

我尝试使用
SystemChrome.setSystemUIOverlayStyle()
第一页可以更改状态栏和应用程序栏的背景色,但第二页不更改状态栏的背景色

导入“包装:颤振/材料.省道”;
导入“包:flifter/services.dart”;
void main(){
runApp(MyApp());
}
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“颤振演示”,
路线:{
“第1页”:(BuildContext上下文)=>MyHomePage(),
“第2页”:(BuildContext上下文)=>MyHomePage2(),
},
主题:主题数据(
主样本:颜色。蓝色,
视觉密度:视觉密度。自适应平台密度,
),
主页:MyHomePage(),
);
}
}
类MyHomePage扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor:Colors.black,
));
返回脚手架(
appBar:appBar(
背景颜色:Colors.red,
),
正文:中(
子:材质按钮(
已按下:(){
Navigator.pushNamed(上下文“第2页”);
},
子项:文本(“下一页”),
),
),
);
}
}
类MyHomePage2扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor:Colors.white,
));
返回脚手架(
appBar:appBar(
背景颜色:Colors.yellow,
),
主体:中心(),
);
}
}
屏幕录制
这个软件包可以帮助你

然后在main.dart文件中导入库

import'包:flatter_statusbarcolor/flatter_statusbarcolor.dart'

现在只需在构建上下文中添加这一行
statusBarColor.setStatusBarColor(Colors.white)

您可以尝试创建一个全局颜色变量,当您更改屏幕时,在按下新屏幕之前更新变量。

我找到了解决方案

我使用
AnnotatedRegion()
更改Android的状态栏颜色,并使用
AppBar()
更改iOS的状态栏颜色

我在主体中放置了另一个
AppBar
,以便为
AppBar
设置其他背景色

像这样:

return注释区域(
值:SystemUIOverlyStyle(
statusBarColor:Colors.black,
状态正确性:亮度。黑暗,
statusBarIconBrightness:Brightness.light,
),
孩子:脚手架(
appBar:Platform.isIOS
?AppBar(
亮度:亮度。暗,
标高:0.0,
背景颜色:Colors.black,
工具栏高度:0.0,
)
:null,
正文:安全区(
子:列(
儿童:[
AppBar(
标题:正文(“第1页”),
背景颜色:Colors.green,
),
居中(
子:材质按钮(
已按下:(){
Navigator.pushNamed(上下文“第2页”);
},
子项:文本(“下一页”),
),
),
],
),
),
),
);

完整代码:

检查此线程:。这可以在一个页面上工作。若我有两个网页,这些网页有不同的背景颜色的状态栏和应用程序栏是不工作的。谢谢你们的答复。但是这个插件已经存档了。也许我可以看到这个插件如何做到这一点。这个软件包更新了很长一段时间,但这是完美的工作感谢您的回复。我试过了,但仍然无法更改状态栏的背景色。