2011-09-16 16 views
6

Ciao Sto usando un ViewPager ma vorrei ora conservare gli stati, invece di avere celle rigenerate.Viewholder Android per ViewPager

Ho notato che viewpager è molto simile a un adattatore personalizzato per le visualizzazioni di elenco e funzionano in modo simile dove listview rigenera i dati nelle celle dopo che non sono più sullo schermo, viewpager è allo stesso modo.

C'è un modo per fare un viewholder, un tipo di oggetto che mantiene lo stato di ogni vista, dopo che è stato caricato inizialmente, in modo che le celle del viewpager si caricino più velocemente. (C'è qualche elaborazione e rendering per ogni cella, ma io alla prova i limiti della memoria di me)

here is my viewpager

risposta

8

Usa FragmentPagerAdapter, che mantiene tutti gli oggetti Frammento che sono stati creati attivamente nella memoria:

/** 
* 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

Fai un HashMap dei layout dopo averle gonfiate. Se hai già un layout per la pagina corrispondente, sostituisci semplicemente il layout con hashMap, altrimenti gonfia il nuovo layout e memorizzalo in hashMap. Non posso garantire se è possibile ripristinare gli stati. Ma ridurrà il tempo di gonfiaggio ogni volta che l'utente passa da una pagina all'altra.

+1

non sarà questo prendere troppa memoria? – user2520215