Изменение значка переполнения в панели действий
Можно ли изменить значок переполнения в панели действий? У меня есть синие значки для всех элементов ActionBar, и я также хочу изменить значок переполнения, когда он появится.
Вы можете со стилем, но вы должны добавить его в основную декларацию темы.
Вы также можете изменить его динамически, о чем я подробно расскажу здесь:
Изменение значка меню «Переполнение Android» программно
Для тех, кто не может заставить его работать, попробуйте это БЕЗ пространства имен «android:».
- @style/OverFlow
-
Измените свой собственный значок переполнения панели действий в styles.xml.
-
Поместите пользовательскую тему «MyTheme» в тег приложения AndroidManifest.xml
Повеселись[email protected]@
Ответ @ adneal правильный (так что это просто объяснение вики сообщества, чтобы развернуть его).
Один из комментариев предположил, что может быть непонимание, как это сделать, поэтому мой ответ – еще один пример того, как переопределить изображение значка переполнения.
Код ниже основан на стилях шаблона из образца ADT New Android Project. Код происходит из файла styles.xml
папке res/values
.
Что делает этот выше код, заменяет значок переполнения по умолчанию с любым доступным для вас ic_menu_moreoverflow
который называется ic_menu_moreoverflow
. Если вы хотите быстро протестировать его, используйте имя файла значка запуска приложения, в котором будет ясно, как он работает.
Полезный ресурс, используемый при попытке понять стиль ActionBar
таков:
- Генератор стилей Android Action Bar
Там вы можете определить конкретные цвета, которые будут использоваться для вашего значка Overflow, и ZIP-файл будет содержать правильный файл styles.xml
для вас.
Независимо от того, что я пытался делать в styles.xml
, ни один из решений не работал для меня. В конце концов, если у вас есть AppCompat 23+, который вам нужен, это самый простой способ, который действительно работает:
toolbar.setOverflowIcon(drawable);
После долгих поисков я получил руководство, которым нужно следовать:
- Проверьте тему в файле манифеста.
- Затем перейдите в res-> values-> themes.
- Найдите название темы в этом файле.
-
Добавьте элемент в тему в theme.xml:
- @style/widgetStyle
- @style/MyActionButtonOverflow
-
Добавьте значок в стиле в том же файле, что и theme.xml:
-
Проверьте пользовательский значок, который вы хотите изменить.
Это сработало для меня