Android 4.0-4.3のメモ取りアプリケーションをリリースしたとき、標準の明るいアクションバーと暗いアクションバーを使用する代わりに、カスタムアクションバーの色とカスタムアクションバーアイコンを使用しました。) Android 4.4の場合、ステータスバーには、アクションバーで使用しているカスタムカラー(#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>
私は実装しようとしました:
<item name="Android:windowTranslucentStatus">true</item>
これにより、アプリケーションのコンテンツが上に移動し、ステータスバー領域から開始され、アクションバーで覆われます。
更新:Translucentテーマの追加に関する Matt Gaunt (Google Employee)からのこの素晴らしい記事が見つかりましたAndroidアプリ。これは非常に詳細であり、このスタイルを実装する際に多くの人が抱えていると思われるいくつかの問題に対処します: Androidの半透明テーマ
以下をカスタムスタイルに追加するだけです。これにより、ActionBarの背後にあるコンテンツがウィンドウの上部に移動するのを防ぎます。ただし、画面の下部についてはわかりません。
<item name="Android:fitsSystemWindows">true</item>
クレジット: Kit-Katの透明ステータスバーシステムUI
必要なのは、この要素を、半透明のステータスバーが必要なテーマに追加することだけです。
<item name="Android:windowTranslucentStatus">true</item>
これらの行をメインテーマに追加します
<style name="AppTheme" parent="Android:Theme.Holo.Light">
<item name="Android:windowTranslucentStatus">true</item>
<item name="Android:windowTranslucentNavigation">true</item>
<item name="Android:fitsSystemWindows">true</item>
</style>
ステータスバーの色をwindowBackgroundに変更するには
<item name="Android:windowBackground">@color/window_bg</item>
ステータスとナビゲーションバーに半透明効果を追加するには
<item name="Android:windowTranslucentStatus">true</item>
<item name="Android:windowTranslucentNavigation">true</item>
ビューの背景色を更新するだけで十分です。
<FrameLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="#ffd060" >
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@Android:color/background_light"
<!-- your stuff here -->
</LinearLayout>
</FrameLayout>
AppBaseThemeでグローバル背景色を指定することも機能しますが、すべてのデフォルトの背景色になるため、混乱を招く可能性があります。