Mam GridView układów, które mogą być dynamicznie dodawane lub usuwane do siatki.Android: Animowanie zmian w treści GridView
W iOS rodzimym zachowaniem dla elementów GridView jest umieszczenie innych elementów w siatce w miejscu usuniętego elementu lub przesuwanie, aby zrobić miejsce po dodaniu nowego elementu.
Jednak na Androidzie zachowanie polega tylko na tym, aby zmiany natychmiast pojawiały się na ekranie. Próbowałem dodając niestandardowe animacje dla każdego getView() rozmowy przy użyciu kilku sztuczek w adapterze GridView, ale to skończyło się powodując pewne problemy widać tutaj:
Android GridView loading the 0 indexed item in a later index's slot when data set changes
Próbowałem posiadające indywidualne poglądy kontrolować animację zamiast getView() metoda adaptera, ale wynik końcowy był identyczny.
Próbowałem też za pomocą GridLayoutAnimationController, tak:
Animation animation = AnimationUtils.loadAnimation(mActivity, R.anim.grid_item_fadein);
GridLayoutAnimationController controller = new GridLayoutAnimationController(animation, .2f, .2f);
mGrid.setLayoutAnimation(controller);
Działa to na wstępnym obciążeniu wszystkich GridView treści, ale wszelkie zmiany tych treści tylko natychmiast wyskoczyć jak to robi domyślnie.
Mam wrażenie, że jest to bardzo prosta funkcja i powinien istnieć łatwiejszy sposób na zrobienie tego. Najlepsze, co widziałem w wyszukiwaniu online, to a library, które animuje elementy GridView, które zamieniają miejsca w siatce, ale to nie jest to, czego szukam (w tej samej bibliotece, kiedy usuwasz element z siatki przez usunięcie taki sam efekt natychmiastowy, którego próbuję uniknąć).
Powszechną odpowiedzią na temat SO, którą również widziałem jest "Spójrz na APIDemos, jest mnóstwo przykładów". Ale o ile widzę, w rzeczywistości nie ma przykładów animacji zmian zawartości GridView.
Każda pomoc jest doceniana, dzięki.
Jakiego rodzaju animacje chcesz dodać? Dodanie właściwości xml "animateLayoutChanges = true" zapewni podstawowe animacje płynów do niemal każdego widoku. – klmprt
To pierwsza rzecz, którą wypróbowałem i niestety nie działa. – JMRboosties
Maj, wiem, jak zatrzymać tę animację. –