Android RecyclerGlatter Bildlauf zum Anzeigen, der die Höhe animiert

8

Ich habe eine RecyclerView mit erweiterbaren untergeordneten Ansichten. Wenn die untergeordnete ViewGroup angeklickt wird, wird eine Anzahl von Ansichten aufgebläht, die die Höhe der ViewGroup von 0 bis zur gemessenen Höhe der Viewgroup animiert, wie das folgende gif:

Das Problem ist: Ich rufe smoothScrollToPosition auf recyclerView auf, es gleitet sanft zur Ansichtsposition, aber es berücksichtigt die aktuelle Ansichtshöhe, die immer noch nicht erweitert ist, in dem obigen GIF, mit dem ich die Unteransicht von berühre die Recycleransicht, die nicht zur Position scrollt, da die Ansicht bereits sichtbar ist, aber wenn ich sie erneut berühre (indem ich die smoothscrolltoposition erneut aufruft), scrollt sie die Ansicht zur korrekten Position, weil die Ansicht bereits erweitert ist.

Gibt es einen Ansatz, um die Ansicht zum oberen Bildschirmrand zu scrollen oder scrollen Sie einfach, um den Inhalt sichtbar zu machen?

Für Referenzen: Dies ist die Methode zum Aufblasen der Ansichten:

%Vor%

Und das ist meine Methode zu erweitern:

%Vor%

Und die Animation:

%Vor%     
Yuri Heupa 19.01.2015, 13:12
quelle

2 Antworten

7

Meine Lösung bestand darin, die Ansichtsfläche innerhalb der applyTransformation-Methode ständig zu überprüfen und sie mit der RecyclerView-Höhe zu vergleichen. Wenn die Unterseite höher als die RV-Höhe wird, scrollte ich um die diff-Werte:

%Vor%

Der Trick bestand darin, Math.min zu verwenden, um die Ansicht nach oben zu bekommen, so dass nicht nach oben geblättert wird und die Spitze nicht sichtbar ist.

Lösung basiert auf ListViewAnimations

    
Yuri Heupa 19.01.2015, 16:11
quelle
0

Fügen Sie einen Animationslistener hinzu und starten Sie das Scrollen der Recycleransicht, nachdem die expandierende Animation beendet ist.

    
Mann 19.01.2015 13:36
quelle