En el example sobre el uso de fragmentos en los documentos de Android, cuando la aplicación está en modo 'dualview', el fragmento de detalles se recrea cada vez que la aplicación necesita mostrar detalles para un título diferente. FragmentTransaction.replace()
se usa para intercambiar cada instancia de fragmento de detalles anterior por una nueva.¿Está bien para actualizar fragmentos en lugar de crear nuevas instancias?
¿Es esta la práctica recomendada? ¿No es un desperdicio crear una nueva instancia de UI cuando la verdadera intención (sin juego de palabras) es actualizar lo que muestra la interfaz de usuario, no la interfaz de usuario en sí misma. Me parece que la única razón para crear nuevas instancias es si se pretende agregarlas a la backstack para que el usuario pueda seguir los pasos. De lo contrario, ¿es seguro/aconsejable actualizar un fragmento directamente?
En el caso del ejemplo, significaría un método a lo largo de las líneas de DetailsFragment.setShownIndex()
. Esto se llamaría, pasando el nuevo índice del título, en lugar de recrear DetailsFragment
.
Supongamos que tenemos una versión del ejemplo donde una actividad administra ambos fragmentos, pero solo muestra uno a la vez, intercambiando cada fragmento según sea necesario. ¿Sería correcto para la actividad crear una instancia de cada fragmento, retener las referencias a cada uno, y luego simplemente agregar o eliminar estas dos instancias de sí mismo según sea necesario?
Una consecuencia posiblemente pegajosa de esto sería que, cuando el fragmento de títulos está en resumed
estado (es decir, en el 'plano'), la selección de un título resultará en una llamada a DetailsFragment.setShownIndex()
en un momento en el fragmento detalles es en stopped
estado.
¿Buena idea? ¿Mala idea?
Gracias de antemano.
sería más útil si proporcionó comentarios en inglés –
Lo siento.Yo soy italiano. –