Изменение значка переполнения в панели действий

Можно ли изменить значок переполнения на панели действий? У меня есть синие значки для всех элементов 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>

Вы также можете изменить его динамически, о чем я подробно расскажу здесь:

Программный значок меню "Переполнение Android"

Ответ 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.