как изменить значок меню Android переполнения - PullRequest
16 голосов
/ 22 июля 2011

Как изменить значок меню переполнения в правой части панели действий, как показано на рисунке ниже? Моя тема Holo по умолчанию определяет этот 3-рядный черный значок стека, и я хочу что-то еще. я не могу найти решение для этого. Я просмотрел документацию по http://developer.android.com/guide/topics/ui/menus.html, но, похоже, она не очень помогает.

Спасибо!

Ответы [ 8 ]

28 голосов
/ 15 апреля 2012

Вы можете попробовать что-то вроде этого:

<style name="MyTheme" parent="android:style/Theme.Holo.Light">
     <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
</style>

<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.ActionButton.Overflow">
    <item name="android:src">@drawable/my_action_bTutton_overflow</item>
</style>

и в AndroidManifest.xml

<application
    android:theme="@style/MyTheme" >
19 голосов
/ 11 марта 2012

Определите собственный стиль: например, назовем его customoverflow.

В этом стиле вы устанавливаете android:src на изображение, которое хотите использовать. Теперь создайте стиль с родителем Theme.holo.

В этом стиле вам нужно определить:

<item name="android:actionOverflowButtonStyle">@style/customoverflow</item>

Я только что проверил это, и оно работает.

10 голосов
/ 19 декабря 2014

Если вы используете AppCompat, вы можете добиться с помощью следующего кода.

Рез / значения / themes.xml

<style name="MyTheme" parent="@style/Theme.AppCompat.Light">
     <item name="android:actionOverflowButtonStyle">@style/ActionButtonOverflow</item>

      <!-- Support library compatibility -->
     <item name="actionOverflowButtonStyle">@style/ActionButtonOverflow</item>

</style>

      <style name="ActionButtonOverflow" parent="@style/Widget.AppCompat.ActionButton.Overflow">
            <item name="android:src">@drawable/ic_launcher</item>
        </style>

и в androidmanifest.xml

<application
    android:theme="@style/MyTheme" >
3 голосов
/ 20 декабря 2011

Я заметил, что он становится белым, если тема приложения - Холо, но черноватым, когда тема - Холо. Светлый

Однако, изменение стиля панели действий для наследования от Холо иОставшаяся часть приложения от Holo.Light не решает проблему, но она должна указывать, в каком направлении вы должны изменять стиль.

Я пробовал:

<style name="AppThemeLight" parent="android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/ActionBar</item>
    <item name="android:windowContentOverlay">@drawable/actionbar_shadow</item>
</style>    
<style name="ActionBar" parent="android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">@color/header_brown</item>
    <item name="android:titleTextStyle">@style/ActionBarTitle</item>
    <item name="android:icon">@drawable/header</item>       
</style>

У меня та же проблема, и я думаю, что это близко к решению

0 голосов
/ 27 мая 2019
<style name="ToolBarTheme" parent="ThemeOverlay.AppCompat.ActionBar">
    <item name="android:tint">@color/colorAccent</item>

создайте вышеуказанный оттенок theme.set своим цветом и добавьте эту тему на панель инструментов.

<androidx.appcompat.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="?attr/actionBarSize"
        android:theme="@style/ToolBarTheme"/>
0 голосов
/ 04 августа 2016

По существу настройки темы, доступные на более новых уровнях API, могут входить в res/values-vXX/styles.xml, тогда как настройки, связанные с обратной совместимостью, могут идти values/styles.xml

Решение Шалафи работает с несколькими дополнениями: добавьте этот код к res/values-vXX/styles.xml и res/values/styles.xml, и он будет работать как Magic!

<style name="AppTheme" parent="android:style/Theme.Holo.Light">
 <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
</style>

<style name="MyActionButtonOverflow"parent="android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/your_overflow_icon</item>
</style>

также добавьте его в AndroidManifest.xml

<application
    android:theme="@style/AppTheme" >
0 голосов
/ 21 апреля 2015

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

Это мой ответ, как показано ниже:

  1. Измените пользовательский значок переполнения дляПанель действий в 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>
    
  2. Поместите пользовательскую тему "MyTheme" в тег приложения AndroidManifest.xml

    <application
        android:name="com.example.android.MainApp"
        android:theme="@style/AppTheme">
    </application>
    

Получайте удовольствие. @. @

0 голосов
/ 21 апреля 2013

Решение Шалафи работает с несколькими изменениями!Вам нужно будет указать theme.Holo в качестве родителя для темы, но у него есть и обратная сторона: изменение цвета текста по умолчанию (по крайней мере, в моих стилях).

Код с поправками должен быть:

   <style name="AppThemeLight" parent="android:style/Theme.Holo">
    <item name="android:actionBarStyle">@style/ActionBar</item>
    <item name="android:windowContentOverlay">@drawable/actionbar_shadow</item>
</style>    
<style name="ActionBar" parent="android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">@color/header_brown</item>
    <item name="android:titleTextStyle">@style/ActionBarTitle</item>
    <item name="android:icon">@drawable/header</item>       
</style>
...