web-dev-qa-db-ja.com

Android明るい/暗いテーマアクションバーテキスト

私の遊び場に暗いテーマを実装していますAndroid=アプリで、アクションバーのテキストの色を白くするのに苦労しています。

以下は私のスタイルと色です。アクションバーの背景はcolorPrimaryに従います。これは素晴らしいことです。ただし、両方の色(明るい色と暗い色)はかなり暗い色であり、アクションバーのテキストの色は常に白にしたいと考えています。現在、DayNight.NoActionBarを親として使用しているため、明るい場合は黒、暗い場合は白になります。アクションバーのインスタンスがいくつかあるので、個別に変更するのではなく、スタイルで定義するだけです。これを行うにはどうすればよいですか?

styles.xml

<style name="DarkThemeApp" parent="@style/Theme.MaterialComponents.DayNight.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="colorError">@color/colorError</item>
    <item name="Android:textColor">?android:attr/textColorPrimary</item>
</style>

night\colors.xml

<resources>
    <color name="colorPrimary">#3d85c6</color>
    <color name="colorPrimaryDark">#002e72</color>
    <color name="colorAccent">#e66f00</color>
    <color name="colorYellow">#FFE800</color>
    <color name="colorError">#E53935</color>
</resources>

values\colors.xml

<resources>
    <color name="colorPrimary">#00348e</color>
    <color name="colorPrimaryDark">#002e72</color>
    <color name="colorAccent">#e66f00</color>
    <color name="colorYellow">#FFE800</color>
    <color name="colorError">#E53935</color>
</resources>
3
user1795832

あなたのstyles.xmlでこのコードを使用してください

<style name="DarkThemeApp" parent="Theme.AppCompat.DayNight.DarkActionBar">
        <item name="Android:actionBarStyle">@style/MyActionBarStyle</item>
    </style>

    <style name="MyActionBarStyle" parent="Theme.AppCompat.DayNight.DarkActionBar">
        <item name="Android:titleTextStyle">@style/MyActionBarTitleTextStyle</item>
    </style>

    <style name="MyActionBarTitleTextStyle" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="Android:textColor">@color/white</item>
    </style>
0
MagogCZ

この質問に対する答えは、アプリで使用する他のコンポーネントによって異なる場合があると思います。私の場合、以下は有効な解決策でした:

これら3つのスタイルをstyles.xmlで定義します

  <style name="ToolbarStyle" parent="@style/Widget.MaterialComponents.Toolbar">
    <item name="titleTextColor">@Android:color/white</item>
    <item name="Android:background">@color/primary</item>
  </style>

  <style name="ToolbarStyle.Overflow" parent="@style/Widget.AppCompat.ActionButton.Overflow">
    <item name="Android:tint">@Android:color/white</item>
  </style>

  <style name="ToolbarStyle.DrawerIcon" parent="Widget.AppCompat.DrawerArrowToggle">
    <item name="color">@Android:color/white</item>
  </style>

そしてあなたのテーマにそれらを設定します:

<style name="DarkThemeApp" parent="@style/Theme.MaterialComponents.DayNight.NoActionBar">
  <!-- color for stuff in action bar -->
  <item name="toolbarStyle">@style/ToolbarStyle</item>
  <item name="actionOverflowButtonStyle">@style/ToolbarStyle.Overflow</item>
  <item name="drawerArrowStyle">@style/ToolbarStyle.DrawerIcon</item>

  <!-- rest of your attributes go here ... -->
</style>
0