2011-09-16 11 views
6

Witam Używam ViewPagera, ale chciałbym teraz zachować stany, zamiast regenerować komórki.Android Viewholder dla ViewPager

Zauważam, że viewpager jest bardzo podobny do niestandardowego adaptera dla odsłon list, i działa podobnie, gdy listview regeneruje dane w komórkach, gdy nie są już wyświetlane na ekranie, viewpager jest taki sam.

Czy istnieje sposób na zrobienie obiektu widoku, jakiegoś obiektu, który zachowuje stan każdego widoku, po tym, jak zostanie załadowany na początku, aby komórki obszaru podglądu ładowały się szybciej. (Istnieją pewne przetwarzania i renderowania dla każdej komórki, ale będę testować granice pamięci sobie)

here is my viewpager

Odpowiedz

8

Zastosowanie FragmentPagerAdapter, który zachowuje wszystkie fragment obiektów, które zostały utworzone aktywnie w pamięci:

/** 
* Implementation of {@link android.support.v4.view.PagerAdapter} that 
* represents each page as a {@link Fragment} that is persistently 
* kept in the fragment manager as long as the user can return to the page. 
*/ 
2

Zrób HashMap z układów po ich nadmuchać. Jeśli masz już układ dla odpowiedniej strony, po prostu wymień układ z hashMap, w przeciwnym razie nadmuchaj nowy układ i zapisz go w hashMap. Nie mogę zagwarantować, że możesz przywrócić stany. Ale zmniejszy to czas pompowania za każdym razem, gdy użytkownik przełącza się między stronami.

+1

nie zajmie to zbyt dużo pamięci? – user2520215

Powiązane problemy