moja aplikacja tematem wygląda jak pokazano na poniższym zrzucie ekranu:Jak zmienić ikonę przepełnienia paska działań kontekstowych bez zmiany go na standardowy pasek akcji?
Jako motyw oparty jest na Theme.Holo.Light
który zawiera teksty ciemny pasek akcji i ikonę przepełnienia, ja dostosować ikonę przepełnienia stosując następujący styl:
<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>
Gdy jeden lub więcej wpisów listy są sprawdzane chcę pokazać białą kontekstowy pasek akcji, ale niestety biały ikona przepełnienia nie jest widoczne na białym tle:
Każdy pomysł, jak zmienić ikonę przepełnienia tylko dla paska kontekstowego - za pomocą stylu lub programowo?
Ostateczne Rozwiązanie (27 lutego 2014)
Wydaje się, że nie jest to możliwe, aby zmienić ikonę przepełnienia z kontekstowego paska akcji niezależny od jednego standardowego paska działań. Więc nie miałem innego wyboru, ale zmieniając kolor tła paska kontekstowego do ciemnoszarego, aby biały przycisk przepełnienia visible:
Ikony po prawej są pod moją kontrolą, więc było łatwo je zmienić. Ikonę "zrobione" po lewej i tekst (licznik czeku) można łatwo zmienić za pomocą atrybutów motywu. Tylko cienki separator pomiędzy ikoną "done" i licznikiem czeków nie może zostać zmieniony przy użyciu atrybutów. Wymagałoby to niestandardowego układu - dlatego zostawiłem to, jak jest na razie.
Oto mój pasek kontekstowy styl i odpowiednia część z tematem:
<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>
Ogłoszenia: Można zobaczyć pełny rezultat w the final app "uPod" która jest dostępna w Google Play!
Może być łatwiej po prostu zmienić kontekstowe bar działanie kolor tła do pewnego jasnoniebieskim. –
hej, wymyśliłeś to? uderzyłem w ten sam problem – Zen
@alexsummers Wydaje się, że nie ma tam po prostu różnych ikon przepełnienia dla standardowego i kontekstowego paska akcji. Zmieniłem tło paska kontekstowego na ciemnoszary, aby białe ikony stały się widoczne. – sven