Изменение значка переполнения в панели действий
можно ли изменить значок в панели действий? У меня есть синие значки для всех элементов панели действий, и я также хочу изменить значок переполнения, когда он появится.
6 ответов:
вы можете со стилем, но вы должны добавить его в объявление основной темы.
<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>
вы также можете изменить его динамически, о чем я подробно расскажу здесь:
для тех, кто не может заставить его работать попробуйте это без пространства имен "android:".
<item name="actionOverflowButtonStyle">@style/OverFlow</item>
измените свой пользовательский значок переполнения панели действий в стилях.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>
получать удовольствие.@.@
независимо от того, что я пытался сделать в
styles.xml
, ни одно из решений работал для меня. В конце концов, если у вас есть AppCompat 23+, который вы должны, это самый простой способ, который на самом деле работает:toolbar.setOverflowIcon(drawable);
@adneal это правильно (так что это просто объяснение сообщества wiki, чтобы расширить его).
один из комментариев предположил, что может быть недопонимание, как это сделать, поэтому мой ответ-это еще один пример того, как переопределить изображение значка переполнения.
код ниже основан на стилях шаблона из образца ADT нового проекта Android. Код приходит от на
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>
что этот код выше делает, это заменить значок переполнения по умолчанию с любым drawable у вас есть, что называется
ic_menu_moreoverflow
. Если вы хотите быстро проверить его, используйте имя файла значка запуска вашего приложения, что сделает его очевидным, как это работает.полезный ресурс для использования при попытке понять
ActionBar
стайлинг, это:там вы можете определить конкретные цвета, которые будут использоваться для вашего значка переполнения, и ZIP-файл будет содержать правильный
styles.xml
файл для вас.
после долгого поиска, что я получил руководство, чтобы следовать, как:
- Проверьте тему в файле манифеста.
- затем перейдите в res->значения - > темы.
- найдите имя темы в этом файле .
добавить элемент в тему в тему.XML-код:
<item name="android:actionBarWidgetTheme">@style/widgetStyle</item> <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
добавить значок в стиле в том же файле, я имею в виду тема.XML-код:
<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.ActionButton.Overflow"> <item name="android:src">@drawable/icon_menu</item> </style>
проверить пользовательский значок, который вы хотите чтобы изменить
это сработало для меня