Programación Android, Cómo usar múltiples Fragments II

Cómo usar múltiples Fragments
Cómo usar múltiples Fragments

En el primer post de cómo usar múltiples fragments en Android hicimos que, cada vez que se creaba una nueva transacción para mostrar diferentes fragments a la pantalla, se realizaran los cambios necesarios en el mapa que contenía la colección de commits. Pero hay una forma de realizar estas comprobaciones de una forma centralizada (para que todos los cambios para eliminar commits en este mapa esté en un mismo punto), y utilizaremos esta misma opción para controlar qué debe mostrarse en pantalla.

Un ejemplo para aclarar esto, sobre el ejemplo de 3 columnas que estamos trabajando, imaginemos que queremos mostrar la primera columna cuando no haya ningún fragment en la columna central, la columna central cuando tenga un fragment visible, pero no haya ninguno en la tercera columna y la tercera columna cuando contenga un fragment visible. En este caso cada vez que vayamos a mostrar un nuevo fragment tendremos que comprobar cuál está presente y mostrar la columna que queramos mostrar, y podremos hacerlo en cuanto añadimos el fragment, pero ¿qué pasa si le damos al botón atrás del dispositivo? El fragment ya no está visible, pero no tenemos control sobre esto y por lo tanto se sigue viendo la columna que ahora ya está vacía.

Leer más…

Programación Android, Cómo usar múltiples Fragments

Cómo usar múltiples fragments
Cómo usar múltiples fragments

Aprovechando que volvemos a tener tiempo libre en esta ocasión vamos a escribir un tutorial que hacía tiempo que queríamos hacer para explicar cómo usar múltiples fragments en una misma pantalla. En su día ya explicamos cómo usar los fragments, pero utilizando tabs, o pestañas, para mostrarlos, en esta ocasión explicaremos cómo tener el control del estado de estos para poder mostrar los datos en pantalla de forma correcta. Es decir, imaginemos que tenemos la pantalla dividida en 3 columnas diferentes, cada una de estas columnas es un área para mostrar fragments, y la última columna la dividimos en 2 filas, de manera que tendríamos un total de 4 áreas para fragments. Estando en landscape (dispositivo en horizontal) tenemos espacio de sobra para mostrar toda la información, sin embargo si giramos a portrait (vertical) estas áreas serán demasiado pequeñas como para mostrar todo lo que queremos, por lo que deberíamos mostrar el último detalle añadido, es decir, la última de las columnas que contengan datos. Sin embargo, al volver a landscape tendríamos que volver a mostrar todas las áreas de nuevo.

Por otra parte, si estamos mostrando información en la última columna, y decidimos cargar otra información distinta posteriormente, tendríamos que mantener la lógica de la cola de fragments que vayamos creando, para que al darle al botón atrás mantengamos una navegación lógica para el usuario, por lo tanto tenemos que crear una lógica que nos permita controlar distintos niveles, para añadir y eliminar fragments donde lo necesitemos.

Leer más…