Elevation funktioniert nicht für BottomSheet im Coordinator-Layout

9

Ich versuche ein BottomSheet in meinem Layout zu verwenden. Die Grundansicht ist ein CoordinatorLayout und ich möchte Elevation oben für das Bottom Sheet setzen, also setze ich es mit einem hohen Wert (50dp), aber es wird nicht angezeigt, wenn die App läuft, aber es erscheint auf Android Studio Design-Tool.

Ich habe versucht, Hintergrund für das Blatt mit einer Volltonfarbe anstelle von Gradienten zu setzen, aber es hat immer noch funktioniert. Ich habe auch versucht, Shadow Shapes zu verwenden, aber es gibt nicht das gleiche Aussehen.

Hier ist mein XML

%Vor%

Bearbeiten: bottom_sheet_layout.xml

%Vor%

Also Wie kann ich die Höhe über dem Bottom Sheet

anzeigen?

Jeder kann helfen, bitte?

    
Atef Hares 30.07.2016, 03:38
quelle

4 Antworten

2

Die Antwort lautet: nein, das ist nicht möglich (es sei denn, Sie erstellen eine eigene benutzerdefinierte Ansicht mit einer Höhenkomponente oben).

Elevetion soll nicht im oberen Teil einer Ansicht sichtbar sein, sondern unten, rechts und links.

Wenn Sie in den offiziellen Material Design Richtlinien genau sehen, können Sie sehen, dass die untere Leiste angezeigt wird einfach nicht haben (nicht mit dem grauen Zwischenraum zwischen der Karte und der unteren Leiste verwechseln).

Beispiel: Importieren Sie das Kartenansicht Beispiel aus Android Studio und spielen Sie mit dem Emulator oder Ihrem Gerät. Wenn Sie den Höhenwert erhöhen, sehen Sie, dass die Ansicht überall ihren Schatten hat, außer oben (siehe zweites Bild unten).

Ein anderes Beispiel erhalten Sie durch Importieren von Elevation Basic .

BEARBEITEN

Der folgende Code stammt aus dem Beispiel Kartenansicht . Es gibt ein Layout mit CardView mit Höhe . Wenn Sie die Höhe ändern, sehen Sie immer Schatten überall, aber nicht oben (der Code wurde mit Lollipop und Marshmallow getestet).

%Vor%

    
JJ86 07.09.2016 10:16
quelle
1

Laut den Google-Richtlinien mit der Android: -Erhöhung ist das nicht möglich (Sie können auch mehr über keyylth lesen.)

Wie auch immer, in den häufigsten Fällen, wenn Sie das "BottomSheet" nach oben scrollen, erscheint ein halbtransparenter Layer hinter dem "BottomSheet". Dies hilft dem Benutzer, sich auf die "BottomSheet" Aktionen zu konzentrieren, wie zB diese Beispiele .

Wenn Sie einen oberen Schatten haben möchten, können Sie einen Hintergrund mit einem solchen Gradienten (shadow_top.xml) erstellen:

%Vor%

Und Ihr SlidingPanelLayout wird sein:

%Vor%

Beste Grüße.

    
Vinicius DSL 07.09.2016 22:45
quelle
0

Vergessen Sie nicht, dass Sie zum Zeichnen von Schatten hardwareAccelerated drawing

verwenden müssen

hardwareAccelerated = true

hardwareAccelerated = false

Weitere Informationen finden Sie Android Hardware Acceleration .

    
Danil Onyanov 06.09.2016 10:39
quelle
0

Probieren Sie das aus,

%Vor%     
Karthik Sridharan 07.09.2016 06:35
quelle