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% 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:
Achten Sie darauf,% LayoutManager
Ihrem RecyclerView
zuzuweisen oder der Aufruf von canScrollVertically kann einen Absturz verursachen!
Tags und Links android android-recyclerview android-toolbar