2011-09-16 47 views
6

Hola Estoy usando un ViewPager pero ahora me gustaría conservar los estados, en lugar de tener las células regeneradas.Android Viewholder for ViewPager

Me di cuenta de que viewpager es muy similar a un adaptador personalizado para listviews, y funcionan de manera similar cuando listview regenera datos en las celdas después de que ya no están en la pantalla, viewpager es de la misma manera.

Hay una manera de hacer un visor, algún tipo de objeto que conserva el estado de cada vista, después de que se carga inicialmente, para que las celdas del visor se carguen más rápido. (Hay algo de procesamiento y renderizado para cada celda, pero voy a probar los límites de la memoria a mí mismo)

here is my viewpager

Respuesta

8

Uso FragmentPagerAdapter, que mantiene todos los objetos de fragmentos que se han creado de forma activa en la 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

Hacer un Hashmap de los diseños después de que los infla. Si ya tiene un diseño para la página correspondiente simplemente reemplace el diseño de hashMap, de lo contrario infle el nuevo diseño y guárdelo en hashMap. No puedo garantizar si puedes restaurar estados. Pero reducirá el tiempo de inflado cada vez que el usuario cambie de página.

+1

no va a tomar demasiada memoria? – user2520215

Cuestiones relacionadas