当前位置: 首页 > 知识库问答 >
问题:

状态栏中图标的颜色(颤动)

施慈
2023-03-14

我使用的是Flatter,状态栏的设计是黑色的,状态栏的图标颜色必须是白色,那么如何在Flatter中更改状态栏图标的颜色?

共有3个答案

仰成天
2023-03-14

lib/main中添加此代码段。省道文件。

        class App extends StatelessWidget {
          // This widget is the root of your application.
          @override
          Widget build(BuildContext context) {
        
            // This code changes background color and icon color of status bar
            SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
              // statusBarColor is used to set Status bar color in Android devices.
              statusBarColor: Colors.transparent,
        
              // To make Status bar icons color white in Android devices.
              statusBarIconBrightness: Brightness.light,
        
              // statusBarBrightness is used to set Status bar icon color in iOS.
              statusBarBrightness: Brightness.dark,
              // Here light means dark icon color for Status bar.
            ));
        
            // material app widget
            return MaterialApp(
        
              // Status bar color
              theme: ThemeData(
                appBarTheme: AppBarTheme(
                  // Brightness.dark will show white color icon
                  brightness: Brightness.dark,
                ),
              ),
        
              color: Colors.white,
        
              title: 'App',
        
              home: Scaffold(),
            );
          }
        }
        

这个链接也会对你有帮助。

戴原
2023-03-14

要将图标更改为白色,请在构建方法中尝试以下操作:

import 'package:flutter_statusbarcolor/flutter_statusbarcolor.dart';

class MyApp extends StatelessWidget {
 @override
  Widget build(BuildContext context) {
    FlutterStatusbarcolor.setStatusBarColor(Colors.white);
    FlutterStatusbarcolor.setStatusBarWhiteForeground(true);
...
}

方法setStatusBarWhiteForeground将文本和图标的颜色更改为白色(如果设置为true),否则颜色将为黑色。

更多信息在这里:https://github.com/mchome/flutter_statusbarcolor/blob/master/lib/flutter_statusbarcolor.dart#L29

宋安晏
2023-03-14

将下面的代码片段添加到main中。飞镖SetSystemTimeOverlayStyle允许用户更改系统覆盖样式(如果有)。这将在你的应用程序中实现全局性的工作。

SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
statusBarIconBrightness: Brightness.dark));

这将给你以下效果(iOS)

 类似资料:
  • 我需要红色的状态栏和白色的前景为我的整个应用程序。 我用的是Flatter_statusbarcolor软件包。 到目前为止,我做了以下工作: 在pubsec中添加了该包。yaml 在我的主机上导入了这个包。dart文件 在MyApp类的中添加了以下代码行 结果: 状态栏的颜色是红色(正常工作)。 前景颜色为白色。但重启时变为黑色。在热重新加载时,变为白色。但重启时,又变为黑色。 以下是我的完整代

  • 还有黑色的图标,可能吗? 谢谢 编辑: M 开发人员预览版中的新增功能:windowLightStatusBar。在主题中打开它会告诉系统使用深色前景,这对于浅色状态栏很有用。请注意,M 预览似乎有一个错误,其中通知图标保持白色,而系统状态图标正确更改为半透明黑色。

  • 我已经搜索了很多关于这个,但所有我找到的是如何改变状态栏颜色。我想像Soundcloud在其移动应用程序中所做的那样,将状态栏中图标的颜色倒置在白色背景上: 如何做到这一点?

  • 如果你认为它重复了一些其他的问题,那么我应该让你现在我已经尝试了3,4页的谷歌搜索,也实现了他们。

  • 我已经改变了我的应用程序的状态栏颜色为白色后,这个状态栏图标是不可见的。

  • 我有两个页面,第一个有白色状态栏,第二个页面有灰色状态栏,但当我从一个页面移动到另一个页面时,第二个页面需要第一个状态栏颜色?? 注意:当我从main函数运行第二页时,它的颜色是正确的 我用这个作为状态栏: 原因是什么?