3

Stackoverflow 上提到的几乎所有 Q/A 都与同一主题相关,但没有得到适当的解决方案。

主要问题:我的应用程序的原色为蓝色,我想将状态栏文本颜色设置为白色。

我试过的:

  • 使用SystemChrome:(使用以下代码,它只是在第一个屏幕中更改状态栏文本的颜色,其他屏幕具有蓝/黑组合背景/前景。)

    SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
        statusBarColor: MaterialColor(0xFF084775, color), // status bar color
        statusBarBrightness: Brightness.light,//status bar brightness
        statusBarIconBrightness:Brightness.light , //status barIcon Brightness
    ));
    

截图:

启动画面:

在此处输入图像描述

仪表板屏幕:

在此处输入图像描述


  • 使用ThemeData:(此方法的结果与上面的屏幕截图相同)。

     theme: ThemeData(
                brightness: Brightness.light, // ADDED THIS LINE..
                primarySwatch: MaterialColor(0xFF084775, color),
                accentColor: Color(0xffe46b10),
                unselectedWidgetColor: Colors.grey,
                fontFamily: 'SourceSansPro',
              ),
    

我还检查了github 问题链接,但对我不起作用。

我只需要将状态栏文本颜色更改为白色。有什么帮助吗?

4

2 回答 2

4

申请所有 appBar 使用

 return MaterialApp(
                theme: ThemeData(
                  appBarTheme: Theme.of(context).appBarTheme.copyWith(brightness: Brightness.dark),
                ),
                debugShowCheckedModeBanner: false,
                // home: InvoiceList(),
                home: widget());

我希望它会起作用。

谢谢你。

于 2021-04-02T11:04:27.960 回答
0

从颤振 2 开始

return MaterialApp(
        theme: ThemeData(
            appBarTheme: Theme.of(context)
                .appBarTheme
                .copyWith(systemOverlayStyle: SystemUiOverlayStyle.light)),
        debugShowCheckedModeBanner: false,
        home: widget());
于 2022-01-26T15:35:22.927 回答