webentwicklung-frage-antwort-db.com.de

Entfernen Sie Android.widget.Toolbar shadow

Verwendung von API21 + Toolbar:

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

Möchte seinen Schatten vollständig entfernen. setElevation(0) tut nichts, da getElevation()0 bereits zurückgibt.

Es gibt eine Referenz zu Material Design:

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

Es gibt Entwicklungsreferenz:

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

Aber ich sehe keine Informationen bezüglich des Schattens. Toolbar 

Frage: wie man Toolbar shadow vollständig entfernt/versteckt?

22
Oleg

Ich habe selbst Lösung gefunden:

getActionBar().setElevation(0);

Mehr Info:

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

16
Oleg

Verwenden Sie app:elevation="0dp" anstelle von Android:elevation in Ihrer Symbolleiste . Wenn dies nicht funktioniert, setzen Sie Ihre Symbolleiste in eine AppBarLayout und setzen Sie 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

Verwenden Sie das Attribut app:elevation="0dp" für Ihre Toolbar oder AppBarLayout, um den Schatten zu entfernen.

#. Wenn Sie nur Toolbar verwenden, fügen Sie das Attribut app:elevation="0dp" zu Toolbar hinzu.

    <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"/>

#. Wenn Sie AppBarLayout als Container von Toolbar verwenden, fügen Sie das Attribut app:elevation="0dp" zu AppBarLayout hinzu.

    <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>

AUSGABE:

 enter image description here

UPDATE:

Wenn Sie es programmgesteuert entfernen möchten, können Sie folgenden Code verwenden:

getSupportActionBar().setElevation(0);

Hoffe das hilft ~

41
Ferdous Ahamed

Anstelle von Android: Elevation Try App: Elevation

<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();

Arbeitete für mich Version Probleme Ich denke Danke Bjorn

in diese Frage

1
Goodlife

setze "# 000000" auf die backgroundColor der Symbolleiste, denke daran: Wenn du CoordinatorLayout und AppBarLayout verwendest, solltest du den app:layout_behavior="@string/appbar_scrolling_view_behavior" deiner contentView entfernen, ich habe diesen elementaren Fehler gemacht.

0
Mingyong Gu

Fügen Sie diesen Code in Fragment ein, in dem Sie ToolBar verbergen möchten.

@Override
public void onResume() {
    super.onResume();
    ((AppCompatActivity)getActivity()).getSupportActionBar().setElevation(0);
}
0
Aslam Hossin

Wenn Sie AppbarLayout in der Symbolleiste verwenden, können Sie app: elevation = "0dp" anstelle von Android: elevation im AppBar-Layout verwenden

0