2011-03-17 11 views
7

Así que he conseguido cómo abrir un fragment. Aquí está mi situación. Tengo una lista de los elementos (elementos de la tabla periódica) que está al lado de mi view. Cuando seleccionas un elemento, muestra su información.Finalizando un fragmento

Mi problema es que tengo que ser capaz de eliminar la view de la (fragmento de lo que llamaremos detalles) y sacarlo de la pila de esa manera no tengo una enorme reserva de la memoria.

¿Cómo lo elimino de la pila cuando se llama a un nuevo fragment para reemplazarlo?

+0

¿Es realmente un problema tener "una gran copia de seguridad de memoria"? A menos que le esté causando problemas reales, o si tiene información que sugiere que será un problema, está agregando complejidad innecesaria a su aplicación. – Dave

Respuesta

3

Puede eliminar un fragmento utilizando el método #remove() de FragmentTransaction. Este método también elimina la vista del contenedor al que se ha adjuntado.

Sin embargo, a partir de la documentación fragmentos:

detenido: El fragmento no es visible. O la actividad del host se ha detenido o el fragmento se ha eliminado de la actividad pero se ha agregado a la pila de respaldo. Un fragmento detenido sigue vivo (el sistema conserva toda la información de estado y miembros). Sin embargo, ya no es visible para el usuario y se eliminará si se mata la actividad.

Si ha agregado ese fragmento a la pila posterior, no se eliminará hasta que la actividad muera.

+0

¿No están de todos modos para matar fragmentos en la actividad? :( – atasoyh

0

Puede intentar no agregar al backstack. Eso cuando cuando un fragmento es removido o reemplazado, no se agrega a la backstack y debería ser repoblado nuevamente (con datos).

Cuestiones relacionadas