android - Cambiar el icono de desbordamiento en la barra de acciones
android-3.0-honeycomb android-actionbar (6)
¿Es posible cambiar el icono de desbordamiento en la barra de acciones? Tengo iconos azules para todos los artículos de ActionBar y también quiero cambiar el icono de desbordamiento cuando aparece.
Cambie el icono de desbordamiento personalizado de la barra de acciones en 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>
Coloque el tema personalizado "MyTheme" en la etiqueta de aplicación de AndroidManifest.xml
<application android:name="com.example.android.MainApp" android:theme="@style/AppTheme"> </application>
Que te diviertas.@.@
Después de una larga búsqueda, obtuve la guía que se debe seguir, como:
- Verifique el tema en el archivo de manifiesto.
- Luego ve a res-> valores-> temas.
- Encuentra el nombre del tema en este archivo.
Agregue el elemento dentro del tema en theme.xml:
<item name="android:actionBarWidgetTheme">@style/widgetStyle</item> <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
Agregue el icono en el estilo en el mismo archivo Me refiero a theme.xml:
<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.ActionButton.Overflow"> <item name="android:src">@drawable/icon_menu</item> </style>
Echa un vistazo al ícono personalizado que deseas cambiar
Funcionó para mí
No importa lo que intenté hacer en styles.xml
, ninguna de las soluciones funcionó para mí. Al final, si tienes AppCompat 23+, que deberías, esta es la forma más fácil que realmente funciona:
toolbar.setOverflowIcon(drawable);
Para aquellos que no pueden hacerlo funcionar intente esto SIN el espacio de nombres "android:".
<item name="actionOverflowButtonStyle">@style/OverFlow</item>
Puede hacerlo con un estilo, pero debe agregarlo a la declaración principal del tema.
<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>
También puede cambiarlo dinámicamente, lo cual entraré en detalles aquí:
Cambiar el icono del menú Desbordamiento de Android mediante programación
La respuesta de @ adneal es correcta (por lo que esta es solo una explicación wiki de la comunidad para ampliarla).
Uno de los comentarios sugirió que podría haber malentendidos acerca de cómo hacer esto, por lo que mi respuesta es solo otro ejemplo de cómo anular la imagen del icono de desbordamiento.
El siguiente código se basa en los estilos de plantilla de la muestra de ADT Nuevo proyecto de Android. El código proviene del archivo styles.xml
en la carpeta 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>
Lo que hace este código anterior es reemplazar el ícono de desbordamiento predeterminado con cualquier dibujante que tenga llamado ic_menu_moreoverflow
. Si quieres una forma rápida de probarlo, utiliza el nombre del archivo del iniciador de tu aplicación, lo que hará que sea obvio cómo funciona.
Un recurso útil para usar al tratar de entender el estilo de ActionBar
es:
Allí puede definir colores específicos para su icono de Desbordamiento, y el archivo ZIP incluirá el archivo de styles.xml
correcto para usted.