web-dev-qa-db-fra.com

Supprimer l'ombre Android.widget.Toolbar

Utilisation de API21 + Toolbar:

// Toolbar
Toolbar toolbar = new Toolbar(this);
toolbar.showOverflowMenu();

Voudrais enlever complètement son ombre. setElevation(0) ne fait rien car getElevation() renvoie déjà 0.

Il existe une référence de conception de matériau:

https://material.io/guidelines/layout/structure.html#structure-toolbars

Il existe une référence de développement:

https://developer.Android.com/reference/Android/widget/Toolbar.html

Mais je ne vois aucune information relative à l'ombre. Toolbar 

Question: comment supprimer/masquer complètement l’ombre Toolbar?

22
Oleg

J'ai trouvé la solution moi-même:

getActionBar().setElevation(0);

Plus d'informations:

https://developer.Android.com/reference/Android/app/Activity.html#getActionBar ()

16
Oleg

Utilisez app:elevation="0dp" au lieu de Android:elevation sur votre barre d’outils . Si cela ne fonctionne pas, placez votre barre d’outils dans une AppBarLayout et définissez app:elevation="0dp":

<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>
52
ramin eftekhari

Utilisez l'attribut app:elevation="0dp" de votre Toolbar ou AppBarLayout pour supprimer l'ombre.

#. Si vous utilisez uniquement Toolbar, ajoutez l'attribut app:elevation="0dp" à Toolbar.

    <Android.support.v7.widget.Toolbar
        Android:id="@+id/toolbar"
        Android:layout_width="match_parent"
        Android:layout_height="?attr/actionBarSize"
        Android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay"
        app:elevation="0dp"/>

#. Si vous utilisez AppBarLayout comme conteneur de Toolbar, ajoutez ensuite l'attribut app:elevation="0dp" à AppBarLayout.

    <Android.support.design.widget.AppBarLayout
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:theme="@style/AppTheme.AppBarOverlay"
        app:elevation="0dp">

        <Android.support.v7.widget.Toolbar
            Android:id="@+id/toolbar"
            Android:layout_width="match_parent"
            Android:layout_height="?attr/actionBarSize"
            Android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </Android.support.design.widget.AppBarLayout>

OUTPUT:

 enter image description here

METTRE À JOUR:

Si vous voulez le supprimer par programme, vous pouvez utiliser le code ci-dessous:

getSupportActionBar().setElevation(0);

J'espère que cela aidera ~

41
Ferdous Ahamed

Au lieu d'Android: élévation essayez app: élévation

<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/ThemeOverlay.AppCompat.Dark.ActionBar"       
    app:elevation="0dp">
</Android.support.design.widget.AppBarLayout>
7
user1517638
findViewById(R.id.appBarLayout).bringToFront();

Travaillé pour moi questions de version, je pense Merci Bjorn

dans cette question

1
Goodlife