如何在我的应用程序中将状态栏设置为白色背景和黑色文本(黑色图标)

How to set Status bar to white background and black text (black icon) in my app

我想在我的应用程序中将状态栏设置为白色背景和黑色文本(和黑色图标)。我发现一些应用程序可以做到这一点。但是从 google 搜索,我找不到任何解决方案 this.There 有很多关于如何设置状态栏的 color.Also 的解决方案,比如 SystemBarTint ,它只能设置背景,但不能设置整个状态栏的样式(白底黑字或黑底白字颜色)。

它适用于 API 21 或更大

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                Window window = getWindow();
                window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
                window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
                window.setStatusBarColor(getResources()
                        .getColor(R.color.YOurColorname));
            }

将这是您的 values-v21/styles.xml 放置在 Lollipop 上启用此功能: 它只会在 API 21

以上有效
  <resources>
        <!-- Base application theme. -->
        <style name="AppTheme" parent="Theme.AppCompat.Light">
            <item name="colorPrimary">@color/color_primary</item>
            <item name="colorPrimaryDark">@color/color_secondary</item>
            <item name="colorAccent">@color/color_accent</item>
            <item name="android:statusBarColor">@color/color_primary</item>
        </style>
    </resources>

我发现此解决方案使用此代码:

  getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
 getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 
  getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

getWindow().setStatusBarColor(Color.TRANSPARENT);// SDK21