2012-01-02 14 views
31

Estoy trabajando en una aplicación que será a pantalla completa, pero utilizará algunas de las funciones de ActionBar. Con Ice Cream Sandwhich, veo que obtengo un divisor/separador de línea azul como parte de la barra de acción. Normalmente, sería bueno para la coherencia, pero en mi caso necesito quitar el divisor.Android ICS: ¿Quitar el divisor azul en ActionBar?

¿Cómo puedo eliminar o aplicar estilo al divisor de la barra de acciones en ICS?

Probé configurando un tema personalizado con "android: style/Widget.Holo.ActionBar" como principal. Sin embargo, la configuración, como la de abajo no tiene ningún efecto

<item name="android:divider">#FFFFFF</item> 
+0

Esto puede ayudar: http://stackoverflow.com/questions/6072226/how-to-style-the-menu-items-on-an-android-action-bar Además, ¿recordó seleccionar su medida personalizada? tema en el Manifiesto o tu código? –

Respuesta

65

El activo gráfico que contiene la línea de fondo azul es el fondo de la vista de contenedor de la barra de acciones y se pone a @android:drawable/ab_transparent_dark_holo cuando se utiliza el tema Holo oscuro predeterminado.

Para eliminar esta línea, que necesita para crear un estilo personalizado para su barra de acción (basado en Widget.Holo.ActionBar o Widget.Holo.Light.ActionBar (o el .Solid variantes) y establezca el android:background a algo que no incluya el borde inferior:

<style name="MyTheme" parent="android:Theme.Holo"> 
    <item name="android:actionBarStyle">@style/MyActionBar</item> 
</style> 

<style name="MyActionBar" parent="android:Widget.Holo.ActionBar"> 
    <item name="android:background">@drawable/your_background_here</item> 
</style> 

Nota: barras de acción Holo oscuridad/luz tienen estilos sólidas y transparentes; esta línea azul aparece de forma predeterminada para el estilo transparente barras de acción Holo oscuros son transparentes por defecto y barras de acción Holo luz son sólidos por defecto.

+0

excelente, que resolvió el problema – dparnas

+0

android: Theme.Holo es solo para API 11. ¿Cómo puedo hacer esto para APIs anteriores? – androidevil

+9

Nota: la configuración ' @ android: color/transparent' eliminará el divisor. –

2

Aquí es una forma sencilla de eliminar el divisor, obras de API 07 utilizando el actionbarcompat de la biblioteca de soporte:

@Override 
public void onCreate(Bundle savedInstanceState) { 
     //... 
     getSupportActionBar().setBackgroundDrawable(
      getResources().getDrawable(R.drawable.whatever_you_want)); 
     //... 
} 
1

Cambiar el tema de la actividad a Theme.Holo.Light.DarkActionBar elimina la línea azul.

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> 
    <item name="android:windowBackground">@android:color/black</item> 
    <item name="android:textColor">@android:color/white</item> 
</style> 

Si aún desea un fondo negro es posible que desee cambiar androide: windowBackground y/o androide: textColor

-2

añadir esta <item name="android:windowContentOverlay">@null</item> a su tema de la aplicación.

Cuestiones relacionadas