8

私のアプリのテーマは、次のスクリーンショットに示すように見えます:

白いオーバーフロー アイコンのあるアクション バー

テーマは暗いアクション バー テキストとオーバーフロー アイコンを含むものに基づいてTheme.Holo.Lightいるため、次のスタイルを使用してオーバーフロー アイコンを調整しました。

<style name="ActionBar.Light" parent="android:style/Widget.Holo.ActionBar">
  <item name="android:background">@color/highlight</item>
  <item name="android:titleTextStyle">@style/TextAppearance.ActionBar.Title.Light</item>
  <item name="android:subtitleTextStyle">@style/TextAppearance.ActionBar.Subtitle.Light</item>
</style>
...
<style name="Theme.Light" parent="@android:style/Theme.Holo.Light">
  ...
  <item name="android:actionBarStyle">@style/ActionBar.Light</item>
  <item name="android:actionOverflowButtonStyle">@android:style/Widget.Holo.ActionButton.Overflow</item>
  ...
</style>

1 つまたは複数のリスト エントリがチェックされているときに、白いコンテキスト アクション バーを表示したいのですが、残念ながら白いオーバーフロー アイコンが白い背景に表示されません。

白い背景に白いオーバーフロー アイコンがあるコンテキスト アクション バー

コンテキスト バーのオーバーフロー アイコンのみをスタイルまたはプログラムで変更する方法についてのアイデアはありますか?

最終的な回避策 (2014 年 2 月 27 日)

コンテキスト アクション バーのオーバーフロー アイコンを、標準アクション バーのオーバーフロー アイコンとは別に変更するオプションがないようです。そのため、コンテキスト バーの背景色を濃い灰色に変更して、白いオーバーフロー ボタンを表示する以外に選択肢はありませんでした。

灰色のコンテキスト アクション バー

右側のアイコンは私の管理下にあるので、簡単に変更できました。左側の「完了」アイコンとテキスト (チェックカウンター) は、テーマ属性を使用して簡単に変更できます。属性を使用して変更できないのは、「完了」アイコンとチェック カウンターの間の薄いセパレータのみです。カスタム レイアウトが必要になるため、今のところそのままにしておきました。

これが私のコンテキストバースタイルとテーマの関連部分です:

<style name="TextAppearance.ActionBar.Title" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:fontFamily">sans-serif-light</item>
</style>
<style name="TextAppearance.ActionBar.Title.Light">
    <item name="android:textColor">#ffffff</item>
</style>

<style name="ContextualBar.Light" parent="android:style/Widget.Holo.ActionMode">
    <item name="android:background">#666666</item>
    <item name="android:titleTextStyle">@style/TextAppearance.ActionBar.Title.Light</item>
    <item name="android:actionMenuTextColor">#ffffff</item>
</style>

<style name="Theme.Light" parent="@android:style/Theme.Holo.Light">
    ...
    <item name="android:actionBarStyle">@style/ActionBar.Light</item>
    <item name="android:actionModeStyle">@style/ContextualBar.Light</item>
    <item name="android:actionModeCloseDrawable">@drawable/ic_action_done</item>
    <item name="android:actionOverflowButtonStyle">@android:style/Widget.Holo.ActionButton.Overflow</item>
    <item name="android:actionMenuTextColor">#ffffff</item>
    ...
</style>

広告: Google Play で入手できる最終的なアプリ「uPod」で完全な結果を確認できます!

4

1 に答える 1

3

あなたのテーマで、Appcompatの使用を想定しています

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
   <item name="android:actionOverflowButtonStyle">@style/OverFlowStyle</item>
</style>
<style name="OverFlowStyle"  parent="Widget.AppCompat.ActionButton.Overflow">
   <item name="android:src">@drawable/your_selector_drawable_here</item>  
</style>
于 2014-02-10T15:38:03.823 に答える