Extraño divisor con la barra de acción de soporte de v7

El tema utilizado para la barra de acción es Theme.AppCompat.Light cuando se utiliza Theme.Holo el problema no existe.

Estoy usando una vista personalizada para la barra de acción de soporte v7:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white" > </LinearLayout> 

Y obtengo el siguiente resultado:

Introduzca aquí la descripción de la imagen

¿Cómo puedo eliminar la línea / divisor negro entre el diseño y la barra de acción.

He intentado cambiar el estilo del actionbar pero con no mucho de un éxito.

 <resources> <style name="Theme.Styled" parent="@style/Theme.AppCompat.Light"> <!-- Setting values in the android namespace affects API levels 14+ --> <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item> </style> <style name="Widget.Styled.ActionBar" parent="@style/Widget.AppCompat.Light.ActionBar"> <item name="dividerVertical">@null</item> <item name="android:background">@null</item> <item name="android:paddingTop">0dp</item> <item name="android:paddingBottom">0dp</item> <item name="android:showDividers">none</item> <item name="android:background">@null</item> <item name="android:divider">@null</item> <item name="android:dividerHeight">0dp</item> <item name="android:dividerPadding">0dp</item> </style> </resources> 

Aquí está mi actividad Fuente:

 public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayShowHomeEnabled(false); actionBar.setDisplayShowCustomEnabled(true); actionBar.setCustomView(R.layout.actionbar); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); } } 

Este es el manifiesto:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.actionbartest" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/Theme.Styled" > <activity android:name="com.example.actionbartest.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 

Probablemente esté buscando el atributo android:windowContentOverlay .

Para eliminar esa sombra, simplemente establece el valor en @null en tu tema, así:

 <style name="Theme.Styled" parent="@style/Theme.AppCompat.Light"> <!-- Setting values in the android namespace affects API levels 14+ --> <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item> <item name="android:windowContentOverlay">@null</item> </style> 

¿Cómo puedo eliminar la línea / divisor negro entre el diseño y la barra de acción.

Creo que estás equivocado. Realmente no hay un divisor presente. Para confirmar:

Abra el archivo de diseño que está utilizando con setContentView(R.layout.activity_main) . Cualquiera que sea el contenedor base, establezca su fondo en el color que utilice con ActionBar. Por ejemplo, digamos que el contenedor base es un LinearLayout:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white" > <<<====== Add this <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> </LinearLayout> 

Verá que el ActionBar ahora se mezcla con la vista de la actividad.

Lo que está viendo actualmente es un gradiente definido como:

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:startColor="#ffe8e8e8" android:endColor="#ffffffff" android:angle="270" /> </shape> 

Aquí es donde el fondo viene de:

 (taken from platforms/android-17/data/res/values/themes.xml) <style name="Theme.Light"> <item name="windowBackground">@android:drawable/screen_background_selector_light</item> .... 

Para deshacerse de él, puede darle a su contenedor de base un color de fondo o reemplazar el valor de este atributo en res/values/themes.xml su proyecto:

 <style name="AppBaseTheme" parent="android:Theme.Holo.Light"> </style> <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <item name="android:windowBackground">@android:color/white</item> </style> 

Editar:

Esta es la configuración del proyecto:

Res / layout / activity_main.xml:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white" tools:context=".MainActivityCompat" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> </RelativeLayout> 

Res / values ​​/ styles.xml

 <resources> <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light"> </style> <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> </style> </resources> 

AndroidManifest.xml:

 <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="14" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.trialcompat.MainActivityCompat" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> 

MainActivityCompat.java:

 import android.os.Bundle; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; public class MainActivityCompat extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayShowHomeEnabled(false); actionBar.setDisplayShowCustomEnabled(true); actionBar.setCustomView(R.layout.actionbar); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); } } 

R.layout.actionbar es la misma que la que has publicado en la pregunta. Y este es el resultado:

Introduzca aquí la descripción de la imagen

Como puede ver, no puedo reproducir el problema del divisor. ¿Me estoy perdiendo de algo?

Junto a @Vikram respuesta, agrega esto al tema:

 <item name="android:windowContentOverlay">@android:color/white</item> 

Recomendación: Usa el mismo color que usas en tus diseños. Para el predeterminado, use @null

Espero que esto ayude.

Tuve el mismo problema. Después de un montón de ensayos y fallos encontré que el error se debía al fondo 9patch de la barra de acción. Cambié el 9patch con una imagen regular y la línea negra se había ido.

  • ActionBarCompat muestra todas las acciones en el menú de desbordamiento
  • Cómo crear una ActionBar como Google Play que se desvanece al desplazarse
  • Cambiar a ActionBarCompat, pero tienen errores de generación relacionados con el tema
  • Nuevo tema.AppCompat ActionBar altura
  • No se puede importar ActionBarCompat desde Android Support Library utilizando Android Studio
  • Quitar icono de la vista de búsqueda del texto de la pista
  • Errores después de construir apk
  • Barra de acciones muestra el menú desplegable cuando sólo hay un elemento en el menú
  • ¿Cuáles son los problemas comunes al migrar de ActionBarSherlock a ActionBarCompat?
  • Los elementos de la barra de acciones de Android permanecen al estallar el fragmento
  • NullPointerException con ProgressBar usando ActionBarCompat
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.