利用Android 4.4 KitKat中的半透明状态栏

Amo*_*tan 22 user-interface android statusbar android-4.4-kitkat

当我发布我的笔记应用程序Android 4.0 - 4.3时,我使用自定义操作栏颜色和自定义操作栏图标(而不是使用标准的明暗和黑暗操作栏).我想在Android 4.4上做到这一点,状态栏也将采用我在Action Bar中使用的自定义颜色(即#FFD060).有没有办法轻松更改我当前的styles.xml以允许4.4利用这个?

我的values-v19文件夹下的styles.xml如下:

<resources>

<style name="AppBaseTheme" parent="@android:style/Theme.Holo.Light">
   <item name="android:actionBarStyle">@style/MyActionBarTheme</item>
</style>

 <style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar">
     <item name="android:background">#ffd060</item>
     <item name="android:textColor">#fff</item>   
     <item name="android:icon">@drawable/action</item>
     <item name="android:titleTextStyle">@style/MyTextAppearance</item>
 </style>

 <style name="MyTextAppearance" parent="android:TextAppearance.Holo.Widget.ActionBar.Title">
     <item name="android:icon">@drawable/action</item>
     <item name="android:textColor">#ffffff</item>
 </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

我试图实现:

 <item name="android:windowTranslucentStatus">true</item>
Run Code Online (Sandbox Code Playgroud)

它会导致我的应用程序的内容向上移动,从状态栏区域开始并被操作栏覆盖.

没有半透明的代码

thu*_*ker 15

更新:Matt Gaunt(Google员工)上发现了一篇关于在Android应用中添加半透明主题的精彩文章.它非常彻底,解决了许多人在实现这种风格时似乎遇到的一些问题:Android中的半透明主题

只需将以下内容添加到自定义样式即可.这可以防止ActionBar后面的内容移动到窗口的顶部,但不确定屏幕的底部.

<item name="android:fitsSystemWindows">true</item>
Run Code Online (Sandbox Code Playgroud)

Credit:Kit-Kat上的透明状态栏系统UI

  • 如果您在应用中使用Toasts,这有点危险,请参阅https://code.google.com/p/android/issues/detail?id=63653 (10认同)