繁体   English   中英

如何更改 Android 中状态栏图标的颜色?

[英]How to change status bar icons color in Android?

我想将状态栏图标的颜色从白色更改为我自己的自定义颜色,以便它适用于所有版本。 我尝试了以下代码,但我做不到。 请问你能帮帮我吗?



我使用的代码,但此代码不是 APIS + 23 的唯一解决方案,不适用于低 API(API 16、API 17 等)。

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);

在此处输入图像描述



我要更改的配色方案。

color #5DD6D6

在此处输入图像描述

您实际上不能像那样更改 android 中的状态栏图标颜色。 您仍然可以将状态栏颜色更改为您想要的任何颜色,但对于状态栏图标,只有 2 个选项 - 浅色(白色)或深色(灰色)。

如果你想使用白色图标,那么只需将<item name="android:windowLightStatusBar">false</item>属性放在你的基本应用程序主题中。 对于深色图标<item name="android:windowLightStatusBar">true</item>

您也可以像这里提到的那样以编程方式进行 - https://stackoverflow.com/a/39596725/10357086

在 kotlin 中,您可以使用以下几行

// for white color of status bar 
       
 val window = this.window
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
        window.statusBarColor = ContextCompat.getColor(this, R.color.white)
        WindowCompat.getInsetsController(window, window.decorView).apply {
            isAppearanceLightStatusBars = true
        }


// for other color of status bar  

val window = this.window
  window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
    window.statusBarColor = ContextCompat.getColor(this, R.color.other_color)
    WindowCompat.getInsetsController(window, window.decorView).apply {
        isAppearanceLightStatusBars = false
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM