Android: je ne peut pas supprimer d'élévation / de l'ombre sur ma barre d'outils
Salut je voudrais enlever l'élévation et de l'effet d'ombre de ma barre d'outils de l'API de 21 ans et plus. Ci-dessous est ce que j'ai essayé
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setElevation(0);
Ma Barre d'outils en XML. J'ai essayé de définir l'altitude de 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"
>
Et c'est ToolbarStyle si elle contribue à
<style name="ToolbarStyle" parent="ThemeOverlay.AppCompat.Dark">
<item name="colorControlNormal">@android:color/white</item>
</style>
Edit 1: Essayé les styles v21. Toujours même résultat
<style name="ToolbarStyle" parent="ThemeOverlay.AppCompat.Dark">
<item name="colorControlNormal">@android:color/white</item>
<item name="android:elevation">0dp</item>
</style>
Edit 2: Lorsque la barre d'outils est dans ma mise en page
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" />
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire avec une étape facile. Ne retirez pas la
android.support.design.widget.AppBarLayout
à partir de votre mise en page, au lieu d'ajouter l'attributapp:elevation="0dp"
à elle. Votre mise en page finale sera:findViewById(R.id.appBarLayout).bringToFront();
.android:elevation="0dp"
ne pas faire l'affaire (sur SDK 21+ Appareil)Supprimer cette élévation sur la barre d'outils (android:stateListAnimator="@null"), stateListAnimator est pour l'API de niveau 21 ou plus, de sorte insérer un outils prop (avant la déclaration d'espace de noms) comme ceci:
Utilisation
setOutlineProvider(null);
sur votre barre d'applications. Juste être sûr de vérifier la version du SDK. 🙂Seulement de supprimer cette partie de vous-disposition de la hiérarchie:
Il est responsable de la création de l'ombre. Barre d'outils elle-même n'a pas jeté une ombre.
Aller à l'activité que vous souhaitez supprimer de l'ActionBar de l'Élévation.
Avant setContent(....), demande de l'ActionBar fonctionnalité(C'est si vous n'avez pas déclaré directement)
ou bien appelez simplement déclaré Barre d'outils de la variable
e.g
la barre d'outils.setElevation(0);
Utilisation
app:elevation="0dp"
dans votre AppBarLayout. Assurez-vous que vous mettez la Barre d'outils à l'intérieur de votre AppBarLayout comme celui -et ajoutez cette ligne à votre activité -
findViewById(R.id.appBarLayout).bringToFront();
Cela va mettre la barre d'accès à l'avant.
Créer un autre style pour la version v21 et ajouter
<item name="android:elevation">@dimen/toolbar_elevation</item>
à ce style. Sur le style normal de ne pas utiliser d'élévation et ne l'utilisez pas en xml, il suffit d'utiliserstyle="@style/yourCustomToolbarStyle"
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" style="@style/ToolBarStyle" android:layout_width="match_parent" android:layout_height="@dimen/abc_action_bar_default_height_material" app:contentInsetLeft="0dp" app:contentInsetStart="0dp" android:background="@color/light_gray">
où est style-v21 j'ai l'altitude pour 4dp et aucune élévation de style normal<style name="MyName" parent="">
et j'utilise<item name="popupTheme">
et<item name="theme">
Obtenir le appbarlayout dans le code:
définir la propriété
Pour supprimer l'élévation à l'aide de code java à utiliser une seule ligne ci-dessous...
getSupportActionBar().setElevation(0);