Al utilizar Fragments
, se puede pensar en ellos como el View
y la Activity
como el Controller
. En mi opinión personal, Fragments fue la reacción instintiva de Google para admitir tabletas, y ahora estamos atrapados con ellas :(
Uso fragmentos todos los días, y ciertamente siento tu dolor. Cuando leí por primera vez sobre ellos, pensé en mí mismo , "esto es realmente genial", pero después de usarlos, se quedan cortos en lo que de muchas maneras, pero sobre todo porque usaría de forma incorrecta :(
Estas son algunas de las trampas que me encontré ...
No use onclick
en el diseño de su fragmento, ya que es el Activity
y NO el Fragment
que manejará el clic. Si usa el atributo y luego usa el fragmento en otro Activity
, entonces deberá recordar agregar el método onclick
a ese Activity
también. Por lo tanto, utilice un findViewById
y luego coloque manualmente el manejador de clics en el fragmento onCreateView
.
Al comunicarse con otros fragmentos, use Activity
como el controlador para dirigir el mensaje. (Muchos ejemplos de cómo hacer esto usando interfaces). La clave aquí es que si está ejecutando múltiples fragmentos en un dispositivo donde un fragmento se comunicará directamente con otro fragmento, entonces se encontrará con un comportamiento extraño pero predecible. Por ejemplo, si el Fragmento A actualizó directamente una Vista en el Fragmento B, pero el Fragmento B no está visible (porque lo ha reemplazado, considere un teléfono), cuando el Fragmento B esté visible, entonces el View
no podrá actualizarse, ya que View
se recrea. Por lo tanto, si actualiza un Fragment
asegúrese de actualizar los datos en un fragmento y luego actualice las porciones View
en el onCreateView
que se llama cuando el fragmento se vuelve a visualizar (es decir, ha reventado el fragmento actual, ahora muestra el anterior uno)
No cree una aplicación completa solo con fragmentos. En lugar de crear aplicaciones como lo haría normalmente, utilizando Actividades y luego tratar el Fragment
tiene una vista glorificada (que es). es decir, diseña la aplicación de modo que tengas múltiples fragmentos y múltiples actividades, y algunas actividades pueden usar más de 1 fragmento.
Mi primer pensamiento con fragmentos fue uno en el que pensé que sería genial para construir una aplicación completa usando fragmentos y una actividad ... Finalmente he terminado la aplicación, pero me encontré con tantos problemas que utilizan enfoque. Mi siguiente enfoque fue utilizar múltiples fragmentos y múltiples actividades y fue mucho mejor.
El fondo es que los fragmentos son grandes si se utilizan como View
, pero si comienza a tratar de utilizarlos como Actividades, entonces van a tener problemas :(Piense en el Activiy
->Fragment
como el ser el Controller
->View
.
también recomiendo que lea y entienda el Fragmento del ciclo de vida, además de la actividad del ciclo de vida (Pro Android 4 tiene una gran calidad de imagen que la represente) y se ahorrará horas de dolor :)
I don' Tengo suficiente experiencia para responder, pero mi primer paso en fragmentos me hizo cuestionar su uso en aplicaciones que no son de tableta. Definitivamente un aumento en la complejidad para una modesta mejora en el desarrollo de UI. – tcarvin