如何在Flutter应用程序中定位状态栏颜色或不透明度?

时间:2017-05-01 22:15:56

标签: flutter

我无法在Scaffold或AppBar类中找到属性来执行此操作。有可能吗?

2 个答案:

答案 0 :(得分:3)

您可以使用SystemChrome.setSystemUIOverlayStyle将状态栏的文字颜色从浅色更改为深色。例如,要使状态栏字体变黑:

SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark);

但是,AppBar窗口小部件还会在其构建函数中调用setSystemUIOverlayStyle,并可能会干扰您。如果您要构建使用AppBar窗口小部件的应用,则应该将brightness上的AppBar设置为Brightness.dark(如果您需要明文状态栏)或Brightness.light(如果你想要一个黑暗的文本状态栏)。

要完全隐藏状态指示器,请使用SystemChrome.setEnabledSystemUIOverlays

我不确定Flutter是否有用于自定义文本不透明度或背景颜色的API。在iOS上根本没有背景,但你可以自己画一个。

答案 1 :(得分:0)

  // set status bar color with opacity
  SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light.copyWith(
      statusBarColor: Color(0x22CACACA)
  ));
  1. 您可以设置状态栏颜色(CACACA之后的0x22部分。
  2. 您可以设置颜色不透明度(22之后的0x部分)。