Android Symbolleiste Höhe beim Scrollen

8

Ich versuche, eine Suchleiste wie in Google Maps Android App zu implementieren:

Wenn sich die Recycler-Ansicht im Ausgangszustand befindet, hat die Symbolleiste keine Höhe. Erst wenn der Benutzer mit dem Scrollen beginnt, wird die Höhe sichtbar. Und die Suchleiste (Symbolleiste) bricht nie zusammen. Hier ist, was ich versucht habe, dies zu replizieren:

%Vor%

Und hier können Sie das Ergebnis sehen:

Das Problem mit meiner Lösung ist also, dass die Höhe der Symbolleiste immer sichtbar ist. Aber ich möchte, dass es nur angezeigt wird, wenn die Recycleransicht dahinter scrollt. Gibt es etwas aus der Design-Support-Bibliothek, das ein solches Verhalten ermöglicht, wie es in der Google Maps App zu sehen ist?

Ich verwende

%Vor%     
Lost in OWL 01.03.2016, 13:31
quelle

2 Antworten

13

Egal, ob Sie CoordinatorLayout verwenden oder nicht, ein RecyclerView.OnScrollListener scheint der richtige Weg zu sein, wenn es um die Höhe geht. Aus meiner Erfahrung heraus ist recyclerview.getChild(0).getTop() jedoch nicht zuverlässig und sollte nicht verwendet werden, um den Scroll-Status zu bestimmen. Stattdessen funktioniert das:

%Vor%

Achten Sie darauf,% LayoutManager Ihrem RecyclerView zuzuweisen oder der Aufruf von canScrollVertically kann einen Absturz verursachen!

    
Daniel Veihelmann 28.03.2016, 06:24
quelle
3

Ich habe eine RecyclerView in meinem Fragment. Ich könnte mit dem folgenden Code einen ähnlichen Effekt erzielen:

Es ist nicht der intelligenteste Weg und Sie können auf bessere Antworten warten.

%Vor%     
W0rmH0le 01.03.2016 14:40
quelle