状态栏图标在 Android 中以白色状态栏隐藏

Posted

技术标签:

【中文标题】状态栏图标在 Android 中以白色状态栏隐藏【英文标题】:Status bar icons are hiding with status bar white color in Android 【发布时间】:2021-09-25 00:52:27 【问题描述】:

我正在使用下面给出的代码 sn-p:

 <style name="AppTheme.NoActionBar.HomeScreen" parent="Theme.AppCompat.Light.NoActionBar">
            <item name="android:textViewStyle">@style/default_font</item>
            <item name="android:windowLightStatusBar">true</item>
            <item name="colorPrimaryDark">@android:color/white</item>
            <item name="colorAccent">@android:color/white</item> 

它将状态栏的颜色更改为白色,但不会将图标(wifi、网络等)的颜色更改为黑色。

我找到了解决办法:

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

但它在 android 11 中被贬值了。

任何人都可以帮助以编程方式将状态栏颜色更改为白色并将图标更改为黑色。

【问题讨论】:

【参考方案1】:

在科特林中

requireActivity().window.apply 
            clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
            addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
            decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
            statusBarColor = Color.WHITE
        

【讨论】:

decorView.systemUiVisibility 在 android 11 中已弃用

以上是关于状态栏图标在 Android 中以白色状态栏隐藏的主要内容,如果未能解决你的问题,请参考以下文章

Android设置状态栏颜色和状态栏文字、图标颜色

Android mipmap 图标作为状态(通知)栏图标

Android 状态栏为白色的时候图标不显示的解决方案

搜索栏处于活动状态时,状态栏图标变为黑色

Android 11 SystemUI(状态/导航栏)-状态栏下拉时图标的隐藏与通知面板的半透黑色背景

Android 完全隐藏状态栏方法