2015-05-27 2 views
3

Я знаю, что можно заменить значок, установив пользовательский actionOverflowButtonStyle, как описано here. Тем не менее, этот стиль позволяет устанавливать только один способ рисования и/или фона.Как отключить значок переполнения панели приложений AppCompat r22.1?

Вместо этого, я хотел бы использовать стандартных значок предоставляемых AppCompat, просто колеровку его с определенным цветом, так же, как задняя кнопка значка ящика/может быть окрашена с помощью атрибута color в drawerArrowStyle.

Я пробовал эти методы, которые, по сообщениям, используемые для работы:

Но, насколько я могу видеть, ни один из них не работают с последним AppCompat - значок переполнения сохраняет свой первоначальный цвет (в то время как другие виджеты, такие как TextViews или текст в пунктах меню сделать изменений).

Должно ли это быть сделано иначе? Я не использую пользовательский вид Toolbar, только по умолчанию, соответствующий AppCompat, ActionBar-подобный.


Как воспроизвести:

  1. Создание проекта Android Студия по умолчанию, с минимальной версии SDK = 9.
  2. Это автоматически включает в себя пустую деятельность и ресурс меню с помощью пункта меню одного, «Настройки», с app:showAsAction="never", что означает, что он будет отображаться в меню переполнения.
  3. Наконец, настройте файл styles.xml. Например:

    <resources> 
        <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
         <item name="colorPrimary">#008888</item> 
         <item name="colorControlNormal">#ff0000</item> 
         <item name="android:textColorPrimary">#ff0000</item> 
        </style> 
    </resources> 
    

Вы заметите, что ни свойство влияет на цвет переполнения значок меню. Протестировано в Nexus 5 с Android 5.1.1.

+0

[mcve] (http://stackoverflow.com/help/mcve) please – tachyonflux

+0

@karaokyo Выполнено, хотя его очень легко воспроизвести - по умолчанию новый проект студии Android достаточно. – matiash

+0

О, хорошо, так что DarkActionBar заставляет белый оверлей. Не использовать «DarkActionBar»? – tachyonflux

ответ

2

Если проследить Theme.AppCompat.Light.DarkActionBar тему, вы видите, что он устанавливает:

<item name="actionBarTheme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item> 

Который, в свою очередь, наследует от Base.ThemeOverlay.AppCompat.Dark, который устанавливает:

<item name="android:textColorPrimary">@color/abc_primary_text_material_dark</item> 

, который по существу равен белому:

<color name="primary_text_default_material_dark">#ffffffff</color> 

Если вы просто наследуете от Base.Theme.AppCompat.Light, вы не столкнетесь с этой проблемой, так как она не устанавливает actionBarTheme. В любом случае вы можете легко настроить панель действий, используя свойства материала.

+0

Спасибо, я посмотрю на это - я попробовал выпустить 'actionBarStyle', но не' actionBarTheme'. – matiash

 Смежные вопросы

  • Нет связанных вопросов^_^