Android半透明状态栏与倒置图标

我想知道如何实现Google日历的外观。 在这里输入图像描述

那是:

  • 倒置的状态栏图标
  • 自定义状态栏颜色(不是由windowTranslucentStatus设置的默认颜色透明度)
  • 小部件顶部填充调整到状态栏下

我试过了:

设置windowTranslucentStatus禁用windowLightStatusBar:

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

仅允许完全透明(两者之间无颜色),fitSystemWindows无法正常工作:

 <item name="android:windowLightStatusBar">true</item> <item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">#19000000</item> window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS) 

谢谢。

是的,您可以将状态栏图标的颜色更改为黑色。将其添加到值-v23 / styles.xml中

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

例如,将其添加到style.xml中的values-v23文件夹中

 <?xml version="1.0" encoding="utf-8"?> 

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">#F5F5F5</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:windowLightStatusBar">true</item> </style> 

请务必将v23 / styles.xml中的colorPrimaryDark更改为灰色或白色

你可以试试这个 在values-v23中添加这个,并在你的布局中设置这个主题

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:statusBarColor">#fff</item> <item name="android:windowLightStatusBar">true</item> </style> 

这会将状态栏背景更改为白色

 <item name="android:statusBarColor">#fff</item> 

这将改变状态栏图标倒置(灰色)

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

输出将是这样的,你可以改变你的动作栏颜色,你想要我给蓝色 在这里输入图像描述

管理找到解决方案:

onCreate(在Kotlin):

 window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR window.statusBarColor = Color.parseColor("#1A000000") 

styles.xml:

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