如何将 android 状态栏颜色更改为白色并将状态栏图标颜色更改为灰色

How to change android status bar color to white and status bar icon color to grey

我正在尝试将状态栏的颜色更改为带有灰色图标的白色。我已经尝试了几乎所有解决这个问题的代码解决方案,但没有一个对我有用。

我正在使用这个 java 函数来更改它,我还发布了我的样式 (21) 代码。

public static void statusBarColor(Window window, Context ctx) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                //Window window = getActivity().getWindow();

                window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
                window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
                window.setStatusBarColor(ctx.getResources().getColor(R.color.statusbar_color));
            }
        }

这是我的 java 代码,但在尝试了一千次后仍然无法正常工作。 下面是我的 style.xml (21)

 <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
        <item name="android:statusBarColor">@android:color/transparent</item>
        <item name="android:windowLightStatusBar" tools:targetApi="23">true</item>   
    </style>

如果您认为它与其他一些问题重复,那么我现在应该让您知道我已经尝试了 3,4 页的 google 搜索并实现了它们。

可以用这个标志实现:

<item name="android:windowLightStatusBar">true</item>

不幸的是,它从 API 23 开始可用,因此您必须在 values-v23/styles.xml 中指定它。有关详细信息,请参阅

此功能没有任何向后移植,因此在撰写本文时它无法在任何较低的 23 位上运行。