1. ホーム
  2. android

[解決済み] primaryDark が white の場合、ステータスバーの文字色を変更する。

2022-10-02 19:04:13

質問

Googleカレンダーアプリケーションの動作を再現しようとしています。

のように表示されるのですが、ステータスの文字色を変更する方法が見つかりません。colorPrimaryDark を白に設定すると、ステータスバーのアイコンやテキストも白になってしまい、見えません。

ステータス バーのテキスト色を変更する方法はありますか。

どのように解決するのですか?

どのようなAPIレベルを対象にしようとしているのかわかりませんが、API23固有のものが使えるのであれば、AppThemeのstyles.xmlに以下を追加すればよいでしょう。

<item name="android:statusBarColor">@color/colorPrimaryDark</item>
<item name="android:windowLightStatusBar">true</item>

いつ android:windowLightStatusBar が true に設定されている場合、ステータスバーの色が白のときにステータスバーのテキストの色が見えるようになり、その逆も同様です。 このとき android:windowLightStatusBar を false に設定すると、ステータスバーの色が暗いときにステータスバーのテキストの色が見えるように設計されます。

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <!-- Status bar stuff. -->
    <item name="android:statusBarColor">@color/colorPrimaryDark</item>
    <item name="android:windowLightStatusBar">true</item> 
</style>