Можно ли изменить значок переполнения на панели действий? У меня есть синие значки для всех элементов ActionBar, и я также хочу изменить значок переполнения, когда он появится.
Изменение значка переполнения в панели действий
Ответ 1
Вы можете со стилем, но вы должны добавить его в основную декларацию темы.
<resources>
<!-- Base application theme. -->
<style name="Your.Theme" parent="@android:style/Theme.Holo">
<!-- Pointer to Overflow style ***MUST*** go here or it will not work -->
<item name="android:actionOverflowButtonStyle">@style/OverFlow</item>
</style>
<!-- Styles -->
<style name="OverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/ic_action_overflow</item>
</style>
</resources>
Вы также можете изменить его динамически, о чем я подробно расскажу здесь:
Ответ 2
Для тех, кто не может заставить его работать, попробуйте это БЕЗ пространства имен "android:".
<item name="actionOverflowButtonStyle">@style/OverFlow</item>
Ответ 3
-
Измените значок пользовательского переполнения панели действий в styles.xml.
<resources> <!-- Base application theme. --> <style name="MyTheme" parent="@android:style/Theme.Holo"> <!-- Pointer to Overflow style DONT forget! --> <item name="android:actionOverflowButtonStyle">@style/MyOverFlow</item> </style> <!-- Styles --> <style name="MyOverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow"> <item name="android:src">@drawable/ic_your_action_overflow</item> </style> </resources>
-
Поместите пользовательскую тему "MyTheme" в тег приложения AndroidManifest.xml
<application android:name="com.example.android.MainApp" android:theme="@style/AppTheme"> </application>
Удачи. @. @
Ответ 4
Независимо от того, что я пытался сделать в styles.xml
, ни одно из решений не styles.xml
мне. В конце концов, если у вас есть AppCompat 23+, что вам и нужно, это самый простой способ, который действительно работает:
toolbar.setOverflowIcon(drawable);
Ответ 5
ответ @adneal правильный (так что это просто объяснение вики сообщества для его расширения).
Один из комментариев предположил, что может быть непонимание, как это сделать, поэтому мой ответ - еще один пример того, как переопределить изображение значка переполнения.
Нижеприведенный код основан на стилях шаблонов из образца ADT New Android Project. Код поставляется из файла styles.xml
в папке res/values
.
<style name="AppBaseTheme" parent="android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:actionOverflowButtonStyle">@style/OverflowMenuButton</item>
</style>
<style name="OverflowMenuButton" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/ic_menu_moreoverflow</item>
</style>
Что делает этот вышеприведенный код, это замена значка переполнения по умолчанию с любым доступным для вас типом с именем ic_menu_moreoverflow
. Если вы хотите быстро протестировать его, используйте имя файла значка программы запуска приложения, которое будет ясно, как оно работает.
Полезный ресурс для использования при стилизации ActionBar
:
Здесь вы можете определить конкретные цвета, которые будут использоваться для вашего значка переполнения, а файл ZIP будет содержать правильный styles.xml
файл для вас.
Ответ 6
После долгих поисков я получил руководство, которым нужно следовать:
- Проверьте тему в файле манифеста.
- Затем перейдите в res- > values- > themes.
- Найдите название темы в этом файле.
-
Добавьте элемент в тему в theme.xml:
<item name="android:actionBarWidgetTheme">@style/widgetStyle</item> <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
-
Добавить значок в стиле в том же файле, что и theme.xml:
<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.ActionButton.Overflow"> <item name="android:src">@drawable/icon_menu</item> </style>
-
Проверьте пользовательский значок, который вы хотите изменить
Это сработало для меня
Ответ 7
Для изменения цвета значка переполнения, вы можете просто добавить
toolbar.setOverflowicon(getDrawable);
Это изменит иконку, выберет любой цвет, который вы хотите, и установите его как Overflowicon.