Usuario:ManuelRomero/Android/Fragement/Conceptos

De WikiEducator
Saltar a: navegación, buscar
Road Works.svg Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos.
Ver página de charlas.
Road Works.svg




Referencias

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

Fragment1.png

Herencia

La clase Fragment hereda directamente de Object como podemos ver en la imagen
ClaseFragment.png

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
  1. Que la acitivity se ejecuta en un móvil pequeño, solo mostraremos uno de los layouts del framgent en un memento determinado
  2. Que la activity se ejecuta en una tablet grande en posición horizontal.
  3. 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