versiones studio pie developer descargar app android

studio - Android: no puedo eliminar elevación/sombra en mi barra de herramientas



android studio (9)

Crea otro estilo para v21 y agrega

<item name="android:elevation">@dimen/toolbar_elevation</item> a ese estilo. En estilo normal, no use elevación y no lo use en xml, solo use style="@style/yourCustomToolbarStyle"

Hola, me gustaría eliminar el efecto de sombra y elevación de mi barra de herramientas para API 21 y superior. Debajo está lo que he intentado

setSupportActionBar(mToolbar); getSupportActionBar().setDisplayShowTitleEnabled(false); getSupportActionBar().setElevation(0);

Mi barra de herramientas en XML. Intenté establecer la elevación a 0dp

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorPrimary" android:minHeight="?attr/actionBarSize" android:elevation="0dp" android:theme="@style/ToolbarStyle" app:theme="@style/ToolbarStyle" >

Y esto es ToolbarStyle si ayuda

<style name="ToolbarStyle" parent="ThemeOverlay.AppCompat.Dark"> <item name="colorControlNormal">@android:color/white</item> </style>

Edición 1: Intenté lo siguiente en estilos v21. Aún el mismo resultado

<style name="ToolbarStyle" parent="ThemeOverlay.AppCompat.Dark"> <item name="colorControlNormal">@android:color/white</item> <item name="android:elevation">0dp</item> </style>

Editar 2: donde la barra de herramientas está en mi diseño

android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content"> <include layout="@layout/toolbar" />


Esto elimina la elevación en la barra de herramientas (android: stateListAnimator = "@ null"), stateListAnimator es para nivel de API 21 o superior, por lo tanto, inserte una herramienta prop (antes de la declaración del espacio de nombres) de esta manera:

//xmlns:tools="http://schemas.android.com/tools" in parent or start element <android.support.design.widget.AppBarLayout android:id="@+id/appBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:stateListAnimator="@null" android:theme="@style/AppTheme.AppBarOverlay" tools:targetApi="21"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:elevation="0dp" app:popupTheme="@style/AppTheme.PopupOverlay" /> </android.support.design.widget.AppBarLayout> //your content goes here like RecyclerView, Card or other layout

Aquí está el resultado de mi muestra:


Obtenga la aplicaciónbarrayout en el código:

var appbarLayout = findviewbyid<AppBarLayout>(resource.id. );

establecer la propiedad

appbarLayout.StateListAnimator=null;


Para eliminar la elevación usando el código java use solo una línea debajo ... getSupportActionBar (). SetElevation (0);


Puedes hacer eso con un paso fácil. No elimine el android.support.design.widget.AppBarLayout de su diseño, en su lugar agregue la app:elevation="0dp" atributo app:elevation="0dp" a él. Su diseño final será:

<android.support.design.widget.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" app:elevation="0dp"> ... </android.support.design.widget.AppBarLayout>


Simplemente elimine esta parte de su jerarquía de diseño:

<android.support.design.widget.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content">

Es responsable de crear sombra. La barra de herramientas en sí misma no proyecta ninguna sombra.


Use setOutlineProvider(null); en tu aplicaciónBar. Solo asegúrate de verificar la versión del SDK. :)


Use la app:elevation="0dp" en su AppBarLayout. Asegúrate de poner la barra de herramientas dentro de tu AppBarLayout así:

<android.support.design.widget.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:theme="@style/AppTheme.AppBarOverlay" android:fitsSystemWindows="true" app:elevation="0dp"> <android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/firstOption" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.AppBarLayout>

y agregue esta línea a su actividad: findViewById(R.id.appBarLayout).bringToFront();
Esto traerá la AppBar al frente.


Vaya a la actividad que desea eliminar la elevación de la barra de acciones. Antes de setContent (....), solicite la función ActionBar (es decir, si no la ha declarado directamente)

getWindow().requestFeature(Window.FEATURE_ACTION_BAR); getSupportActionBar().setElevation(0);

o simplemente llame a la variable declarada Toolbar, por ejemplo, toolbar.setElevation (0);