ActionBar MenuItem Divider
¿Hay una manera de mostrar divisor entre los elementos de menú en ActionBar para HoneyComb +.
Algunos post dice que el divisor se mostrará sólo cuando los elementos del menú tiene android: showAsAction = "withText".
- Barra de acción desordenada después de usar setTitle
- Auto Collapse ActionBar SearchView en Soft Keyboard cerrar
- Botón de inicio de la barra de acción de Android
- ¿Hay alguna forma de detectar la altura del androide actionBar antes de mostrarlo?
- Cómo mostrar el fragmento seleccionado en la pestaña de la barra de acción
Quiero mostrar sólo el icono no el texto.
He demostrado con éxito Divider para Pre-HoneyComb mediante la implementación de una barra de acción de compatibilidad.
No quiero usar ActionBarSherlock como se da en esta publicación Android barra de acción sherlok no muestra divisor porque será el momento de cambiar de Action Bar Compatibility a ActionBarSherlock en mi todos los proyectos.
Cuando vi la fuente de Android encontré que Divider será mostrar sólo cuando tiene texto como se muestra a continuación (de ActionMenuItemView)
public boolean needsDividerBefore() { return hasText() && mItemData.getIcon() == null; } public boolean needsDividerAfter() { return hasText(); }
¿Hay una manera que puedo dar mi implementación para ActionMenuItemView para ActionBar donde needsDividerBefore () siempre dará true
- ¿Cuál es la duración de la acción nativa.show () y ocultar () la animación
- ¿Cómo se elimina el texto del título de la Android ActionBar?
- Control dinámico de elementos de acción / menú en ActionBar
- Android cómo hacer clic en el icono de logotipo en la barra de acción?
- Cómo especificar el modo de acción oscura con mi tema
- Cómo personalizar Android ActionBar para mostrar una vista personalizada antes de las pestañas?
- Establecer la altura del icono de la barra de acciones para que coincida con la altura de la barra de acciones
- Relleno entre el icono de inicio de ActionBar y el título
He encontrado una respuesta por mí mismo con la ayuda de http://android-developers.blogspot.in/2011/04/customizing-action-bar.html Sin embargo, esto no soluciona completamente mi problema. Añade un divisor para Title, y también uno para el Icono de inicio. También hay separadores izquierdo y derecho. Eso también es ajustable.
He añadido android: selectableItemBackground a mi tema.
<item name="android:selectableItemBackground">@drawable/action_bar_item_selector</item>
Action_bar_item_selector.xml
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/actionbar_compat_separator"></item> <item android:left="1dp" android:drawable="@drawable/actionbar_compat_item"></item> </layer-list>
Actionbar_compat_separator – es mi seperator dibujable
Y actionbar_compat_item es mi selector para el elemento de la barra de acción.
EDITADO
He encontrado una mejor solución a mi problema. Funciona bien.
<item name="android:actionButtonStyle">@style/ActionButton</item> to my Theme <style name="ActionButton" parent="android:style/Widget.Holo.Light.ActionButton"> <item name="android:background">@drawable/action_bar_item_selector</item> </style>
Puede reemplazar el tema existente con estilos personalizados, por ejemplo
<style name="CustomTheme" parent="android:Theme.Holo.Light"> <item name="android:actionBarStyle">@style/ActionBar</item> </style> <style name="ActionBar" parent="android:style/Widget.Holo.Light.ActionBar"> <item name="android:background">@color/action_bar_background</item> <item name="android:showDividers">beginning</item> <item name="android:divider">@color/action_bar_divider</item> </style>
Actualización: Esto no parece funcionar para Android 5 Lollipop y superior:
Esta es la mejor manera que encontré. Simplemente agregue un grupo con un elemento ficticio a su menú:
Menu.xml
<group> <!--dummy item to get a nice separator--> <item android:title="" android:showAsAction="always" android:enabled="false" /> </group> <item android:id="@+id/action_example" ...
El elemento ficticio tiene un título vacío por lo que parece invisible y está desactivado para que no se pueda hacer clic en él.
- VideoView flash negro antes y después de jugar
- Cómo establecer una matriz de transformación arbitraria a una vista?