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".

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

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.

  • Cambiar la posición de Android Action Bar
  • Capacidad de ActionBar / desbordamiento que no cambia en cambio de orientación
  • Android: deshabilitar barra de acción home button
  • Eventos de entrada de la barra de acción de Android
  • Altura de las lengüetas de ActionBar
  • Los elementos de menú no se muestran en la barra de acciones
  • El título de ActionBar no está visible
  • Ocultar brevemente ActionBar sin cambiar el tamaño Actividad
  • Personalización de android.widget.SearchView
  • Eliminar el subtítulo de ActionBar / restablecer el texto de ActionBar
  • Implementación de pestañas + deslizamiento en versiones android <4.0
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.