Flutter系统导航栏和状态栏颜色

如何使用Android Studio和Flutter更改系统NavBar?

我认为它不在main.dart中,并且我需要遍历android系统文件,但是当我尝试编辑style.xml时,主题编辑器不允许我编辑任何颜色。

任何帮助将不胜感激,我想拥有一个浅色的NavBar和一个浅色的AppBar。

回答:

注意:这需要Flutter的更新版本,因为它引用了2018年6月添加的API

您可以SystemUiOverlayStyle使用默认构造函数创建自定义。系统导航栏的颜色在此处定义。但是要避免设置大量的空值,请使用该copyWith方法从现有的明暗主题中更新值。

const mySystemTheme= SystemUiOverlayStyle.light

.copyWith(systemNavigationBarColor: Colors.red);

您可以使用SystemChrome静态方法强制设置系统导航颜色。

SystemChrome.setSystemUiOverlayStyle(mySystemTheme);

但是,如果您有多个设置此值的小部件,或者使用材质AppBar或Cupertino

NavBar,则它们可能会覆盖您的值。取而代之的是,您可以使用新的AnnotatedRegion

API来告诉flutter在某些可见的小部件时自动切换到这种样式。例如,如果您想在特定路线中随时使用以上主题,则可以将其包装在AnnotatedRegion小部件中,如下所示。

Widget myRoute(BuildContext context) {

return new AnnotatedRegion<SystemUiOverlayStyle>(

value: mySystemTheme,

child: new MyRoute(),

);

}

如果您弹出路线,这 不会 将您的主题恢复为先前的值

以上是 Flutter系统导航栏和状态栏颜色 的全部内容, 来源链接: utcz.com/qa/434793.html

回到顶部