Entfernen Sie den Schatten von BottomNavigationView [effektiv]

Prämisse

Artikel zum BottomNavigationViewEntfernen von Schatten sind im Internet im Grunde wirkungslos, wie zum Beispiel typische Artikel Theme="@null". Deshalb habe ich dieses Problem recherchiert und beschlossen, einen effektiven Lösungsbeitrag zu schreiben.

Flusssparender Assistent: Attribute in BottomNavigationView hinzufügen: app:elevation="0dp" kann Schatten entfernen .



Problembeschreibung

BottomNavigationView, der vollständige Name in der XML-Datei lautet <com.google.android.material.bottomnavigation.BottomNavigationView />, bei Verwendung sieht es so aus (die Navigationsleiste unten):
Eine reguläre BottomNavigationView-Seite
Wenn es BottomNavigationViewin der Mitte des Bildschirms platziert wird, wird der Schatten des gesamten Steuerelements vollständig angezeigt. Dieser Schatteneffekt ähnelt tatsächlich dem cardVieweingebauten Schatten. .
Zentrierte BottomNavigationView


Lösung

theme="@null"Es ist ungültig, wenn es direkt im Steuerelement hinzugefügt wird . Tatsächlich wird der Schatten durch die Höhe des Steuerelements implementiert. Das heißt, je höher das Steuerelement, desto größer ist der Schattenwurf. Dies können wir also elevationdurch dieses Attribut erreichen. Wenn der Schatten verschwinden soll, setzen Sie die Höhe des Steuerelements auf 0. Die vollständige Schreibmethode lautet:app:elevation="0dp"

<com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:elevation="0dp"
    ...
    app:menu="@menu/bottom_nav_menu" />

Der Effekt, nachdem das Höhenattribut auf 0 dp gesetzt wurde
Wenn wir elevationden Wert erhöhen und auf setzen app:elevation="30dp, wird der Schatteneffekt größer und deutlicher:
Der Effekt nach dem Festlegen des Höhenattributs auf 30 dp
Hinweis : Es gibt zwei im Steuerelement elevation, eines ist android:elevationund eines ist app:elevation, dasjenige , das mit app is valid beginnt , und dasjenige, das mit android beginnt ist ungültig . Außerdem android:translationZscheint es die Z-Achse anzupassen, hat aber tatsächlich keine Auswirkung auf die Anpassung des Schattens.



Prinzip

Wie Sie der Ansicht entnehmen können BottomNavigationView, themegibt es intern eine Einstellung elevationund der Wert ist auf 8 dp eingestellt. Wenn wir also den Schatten anpassen möchten, stellen wir auch diesen ein elevation.

Standardstil von BottomNavigationView
Standardschattenhöhe von BottomNavigationView

Supongo que te gusta

Origin blog.csdn.net/Guan_li_peng/article/details/127203993
Recomendado
Clasificación