Diferencia entre revisiones de «Usuario:ManuelRomero/Android/Fragement/Conceptos»
De WikiEducator
Línea 14: | Línea 14: | ||
==Herencia== | ==Herencia== | ||
La clase '''''Fragment''''' hereda directamente de '''''Object''''' como podemos ver en la imagen | La clase '''''Fragment''''' hereda directamente de '''''Object''''' como podemos ver en la imagen | ||
+ | <br/> | ||
[[Imagen:claseFragment.png]] | [[Imagen:claseFragment.png]] | ||
===Haciendo un fragment=== | ===Haciendo un fragment=== | ||
Línea 29: | Línea 30: | ||
;onCreateView | ;onCreateView | ||
:Crea la UI de usuario correspondiente a este Fragment y lo retorna para que forme parte de la UI de la Activity de la que depende | :Crea la UI de usuario correspondiente a este Fragment y lo retorna para que forme parte de la UI de la Activity de la que depende | ||
+ | *Dentro de este método es donde asignamos el layout correspondiente al '''''Fragment''''', y lo devolvemos para que la activity lo incorpore en su UI. | ||
onCreateView(LayoutInflater, ViewGroup, Bundle) | onCreateView(LayoutInflater, ViewGroup, Bundle) | ||
+ | ;onActivityCreated | ||
+ | :Cuando la '''''Activity''''' de la que depende el '''''Fragment''''', ya ha sido creada | ||
+ | *A partir de ahora podemos invocar a getActivity() para recuperar una referencia a dicha activity | ||
+ | onActivityCreated(Bundle); | ||
<!-- MRM Falta de traducir y entender bien | <!-- MRM Falta de traducir y entender bien | ||
− | |||
onViewStateRestored(Bundle) tells the fragment that all of the saved state of its view hierarchy has been restored. | onViewStateRestored(Bundle) tells the fragment that all of the saved state of its view hierarchy has been restored. | ||
onStart() makes the fragment visible to the user (based on its containing activity being started). | onStart() makes the fragment visible to the user (based on its containing activity being started). | ||
Línea 44: | Línea 49: | ||
onDetach() called immediately prior to the fragment no longer being associated with its activity. | onDetach() called immediately prior to the fragment no longer being associated with its activity. | ||
--> | --> | ||
+ | *Cada Fragment tiene su layout | ||
+ | ===Activity propietaria de los fragmente=== | ||
+ | *Ahora definimos una activity que incorporará los layouts | ||
+ | *Como toda Activity contendrá su layout, pero en este caso vamos a definir tres diferentes, aunque con el mismo nombre | ||
+ | *Esto es por que en este caso queremos contemplar tres situaciones | ||
+ | #Que la acitivity se ejecuta en un móvil pequeño, solo mostraremos uno de los layouts del framgent en un memento determinado | ||
+ | #Que la activity se ejecuta en una tablet grande en posición horizontal. | ||
+ | #Que la activity se ejecuta en una tables grande en posición vertical. | ||
+ | *Para que esto funcione cada uno de estos layouts, todos con el mismo nombre pues son el layout de una '''''Activity''''', lo guardaremos en diferentes carpetas |
Revisión de 13:26 16 mar 2014
Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos. Ver página de charlas. |
Referencias
- http://www.sgoliver.net/blog/?p=3496
- http://developer.android.com/reference/android/app/Fragment.html
La clase Fragment
- Un fragment es una parte de una actividad, con su propia interfaz de usuario y comportamiento.
- De este modo podemos tener una actividad costruida a partir de uno o varios Fragment
- Por otro lado podemos usar el mismo Fragment para asignarlo a diferentes Activity
- En la figura tenemos una app con dos Activity, y otra app con una única Activity que contiene dos Fragment
Herencia
La clase Fragment hereda directamente de Object como podemos ver en la imagen
Haciendo un fragment
- Todo fragmente ha de tener asociado un layout y una clase java
- Un Fragment tiene su propio ciclo de vida que conviene conocer
- Un Fragmente no se puede ejecutar de forma independiente; Para ser ejecutado en una app siempre pertenecerá a una Activity.
- Su ejecución estará ligada a la ejecución de la Activity, pero tiene su propio ciclo de vida.
- hay una serie de métodos que conviene conocer:
- onAttach
- Llamado una vez que el Fragment es asociado a la Activity
onAttach(Activity)
- onCreate
- Invocado para crear el Fragment dentro de nuestra app.
onCreate(Bundle)
- onCreateView
- Crea la UI de usuario correspondiente a este Fragment y lo retorna para que forme parte de la UI de la Activity de la que depende
- Dentro de este método es donde asignamos el layout correspondiente al Fragment, y lo devolvemos para que la activity lo incorpore en su UI.
onCreateView(LayoutInflater, ViewGroup, Bundle)
- onActivityCreated
- Cuando la Activity de la que depende el Fragment, ya ha sido creada
- A partir de ahora podemos invocar a getActivity() para recuperar una referencia a dicha activity
onActivityCreated(Bundle);
- Cada Fragment tiene su layout
Activity propietaria de los fragmente
- Ahora definimos una activity que incorporará los layouts
- Como toda Activity contendrá su layout, pero en este caso vamos a definir tres diferentes, aunque con el mismo nombre
- Esto es por que en este caso queremos contemplar tres situaciones
- Que la acitivity se ejecuta en un móvil pequeño, solo mostraremos uno de los layouts del framgent en un memento determinado
- Que la activity se ejecuta en una tablet grande en posición horizontal.
- Que la activity se ejecuta en una tables grande en posición vertical.
- Para que esto funcione cada uno de estos layouts, todos con el mismo nombre pues son el layout de una Activity, lo guardaremos en diferentes carpetas