Yo uso actionbarsherlock. El siguiente código es responsable de cambiar su fondo a uno personalizado.
<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.ActionBar">
<item name="background">@drawable/actionbar_bg</item>
<item name="android:background">@drawable/actionbar_bg</item>
<...>
</style>
<style name="Theme.MyApp" parent="@style/Theme.Sherlock.Light">
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
<..>
</style>
Y funciona para actionbarsherlock (en versiones debajo de nido de abeja). Pero en ICS tengo una sombra debajo de la barra de acción que no quiero. ¿Cuál es el elemento de estilo para que desaparezca?
android
android-actionbar
actionbarsherlock
Michał K
fuente
fuente
getSupportActionBar().setElevation(0);
no funciona. Entonces has puesto<item name="android:windowContentOverlay">@null</item>
el tema de tu aplicación. Tuve el problema similar. Ahora los tengo a los dos. setElevation from y el elemento windowContentOverlay agregado en el tema de la aplicación. setElevation funciona para Android 5.0 y versiones posteriores, mientras que el otro funciona para pre-lollipop. ¡Salud!Para Android 5.0, si desea configurarlo directamente en un estilo, use:
y para el uso de compatibilidad con la biblioteca de soporte:
Ejemplo de estilo para un tema ligero de AppCompat:
Luego aplique este estilo personalizado de ActionBar al tema de su aplicación:
Para Android 5.0 anterior, agregue esto también al tema de su aplicación:
fuente
windowContentOverlay
tema de la barra de acción, no el tema de la aplicación.android:elevation
dispositivos Lollipop). No puedo hacerlo, usando este enfoque. Creo que sería bastante sencillo. Ponga un valor distinto de cero para los atributos de elevación y eso sería todo.android:windowContentOverlay
la API pre lollipop? ¿No puedo compilar si mi minSDK es pre piruleta pero el objetivo es 21?<style name="Theme.MyApp.ActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
sinstyle/
en elparent
atributo.En Android 5.0 esto ha cambiado, debe llamar a setElevation (0) en su barra de acción. Tenga en cuenta que si está utilizando la biblioteca de soporte, debe llamarla así:
No se ve afectado por el elemento de estilo windowContentOverlay, por lo que no se requieren cambios en los estilos
fuente
agregue
app:elevation="0dp"
AppBarLayout para ocultar la sombra en la barra de aplicacionesfuente
Si está trabajando con ActionBarSherlock
En tu tema agrega esto:
fuente
Debe configurar
app:elevation="0dp"
enandroid.support.design.widget.AppBarLayout
y luego funciona.fuente
pero no
funcionó para mí en Android L
fuente
Tengo este mismo problema y lo he resuelto con éxito. Todo lo que tiene que hacer es cambiar la elevación a un valor de coma flotante 0 en esa actividad en la que desea eliminar la elevación.
Si desea cambiarlo en una actividad llamada
MyActivity.java
, debe obtener elActionBar
primera.Primero importa la
ActionBar
clasedespués de importar, debe inicializar una variable de barra de acción y establecer su elevación a 0.
fuente
Para desarrolladores de Xamarin, utilice:
SupportActionBar.Elevation = 0;
paraAppCompatActivity
oActionBar.Elevation = 0;
para actividades no compatiblesfuente
Solución para Kotlin (Android 3.3, Kotlin 1.3.20)
fuente
Prueba esto me ayudó sin cambiar de tema. Coloque su AppBarLayout dentro de cualquier diseño. Espero que esto lo ayude
fuente
Para aquellos que trabajan en fragmentos y desapareció después de la configuración
toolbar.getBackground().setAlpha(0);
o cualquier desaparición, creo que debe llevar su AppBarLayout al último en el xml, por lo que es Fragment, luego AppBarLayout y luego relativolayout / restriction / linear, según lo que use.fuente
Agregue esto
toolbar.getBackground().setAlpha(0);
al método interno de OnCreate. Añada esto:android:elevation="0dp" android:background="@android:color/transparent
a su archivo xml de barra de herramientas.fuente