如何使用黑色图标使状态栏变为白色?

Jon*_*Jon 60 android themes

我想更改我的应用程序的状态栏的颜色,使其为黑色图标的白色(而不是带有白色图标的默认黑色).有没有办法做到这一点?

bug*_*ral 94

使用Android M(api level 23),您可以使用android:windowLightStatusBar属性主题实现此目的.

编辑:

就像Pdroid提到的那样,这也可以以编程方式实现:

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); 
Run Code Online (Sandbox Code Playgroud)

  • 如果我想在22或以前的版本中使用该怎么办? (4认同)
  • 我可以通过编程方式设置它吗? (2认同)

Ram*_*rot 30

可以使用灰色图标制作白色状态栏,例如SDK> = 23:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:windowLightStatusBar">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

在styles.xml中并将其设置colorPrimary为白色或以编程方式:

getWindow().setStatusBarColor(Color.WHITE);
Run Code Online (Sandbox Code Playgroud)


Ser*_*aka 12

刚刚加入我对Kotlin的活动:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                window.decorView.systemUiVisibility =View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
                window.statusBarColor = Color.WHITE
            }
Run Code Online (Sandbox Code Playgroud)


Rap*_*l C 9

这对我有用

<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowLightStatusBar">true</item>
    <item name="android:statusBarColor">@android:color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)

  • 这需要最低 Api 级别 23 (3认同)

Aye*_*ngs 8

只需将此添加到您的样式中

<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
Run Code Online (Sandbox Code Playgroud)

android:windowDrawsSystemBarBackgrounds设置为true*。这是一个标志,其描述如下:

指示此窗口是否负责为系统栏绘制背景的标志。如果为 true 且窗口不是浮动的,则系统栏会以透明背景绘制,并且此窗口中的相应区域会填充 {@link android.R.attr#statusBarColor} 和 {@link android.R 中指定的颜色.attr#navigationBarColor}。对应于 {@link android.view.WindowManager.LayoutParams#FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS}。