with viewpager studio fragments example android save instantiation android-viewpager

viewpager - tabs android



Android Viewpager guarda datos y vistas (1)

Con suerte, alguien me puede ayudar con un ligero problema / confusión que tengo con Viewpagers y guardando datos.

PROBLEMA:

Al desplazarme por las cuatro vistas que tengo, la primera vista tiene dos paneles giratorios, dos vistas de texto que muestran una cuerda o un elemento seleccionado. si me desplazo a la tercera página y regreso a la segunda página, los datos en la primera vista se pierden. hense necesidad de guardar los datos.

¿Esto se haría en las dos rutinas que se detallan a continuación? (lo mejor es que sería) en caso afirmativo, ¿qué tipo de comandos deben indicarse?

CÓDIGO:

@Override public void restoreState(Parcelable arg0, ClassLoader arg1) { } @Override public Parcelable saveState() { return null; }

INFORMACIÓN ADICIONAL: el visor se está utilizando en

public Object instantiateItem(View collection, int position) { }

La lista completa de métodos es la siguiente:

@Override public void destroyItem(View arg0, int arg1, Object arg2) { ((ViewPager) arg0).removeView((View) arg2); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == ((View) arg1); } @Override public Parcelable saveState() { return null; } @Override public void finishUpdate(View arg0) { } @Override public void restoreState(Parcelable arg0, ClassLoader arg1) { } @Override public void startUpdate(View arg0) { }


En lugar de guardar el estado de esas páginas, puede modificar su ViewPager para que almacene todas sus páginas en lugar de destruirlas y volver a crearlas cuando se desplace.

Entonces, por ejemplo, si tienes 4 páginas:

ViewPager pager = (ViewPager) findViewById(R.id.viewpager); pager.setOffscreenPageLimit(3); // the number of "off screen" pages to keep loaded each side of the current page pager.setAdapter(new PageAdapter(context));

Ahora tus páginas se mantendrán ''vivas''

Tenga cuidado con esta técnica, sin embargo, ya que aumentará el consumo de memoria. El número que se pasa a setOffscreenPageLimit () es el número de páginas que se retendrá en cada lado de la página actual. En este caso, tenemos 4 páginas en total, por lo que el peor de los casos es cuando estamos en el extremo del conjunto de páginas: tenemos la página visible actualmente y las 3 páginas restantes están fuera de la pantalla y se mantienen así en memoria. Sin embargo, con un conjunto de datos más grande, podría significar que se guardan 7 páginas en la memoria (página actual más 3 en cada lado).

En general, la solución más óptima sería lidiar adecuadamente con la descarga y recarga del estado de la página y volver a procesarlos.

Espero que esto ayude