Diferencia entre revisiones de «Usuario:ManuelRomero/Android/Fragement/Conceptos»

De WikiEducator
Saltar a: navegación, buscar
Línea 1: Línea 1:
{{TEP}}
+
{{TEP}} {{:Usuario:ManuelRomero/Android/Fragment/nav}} <br> Referencias  
{{:Usuario:ManuelRomero/Android/Fragment/nav}}
+
 
<br>
+
*http://www.sgoliver.net/blog/?p=3496  
Referencias
+
*http://developer.android.com/reference/android/app/Fragment.html  
*http://www.sgoliver.net/blog/?p=3496
+
*http://edu4android.com/es/guide/topics/fundamentals/fragments.  
*http://developer.android.com/reference/android/app/Fragment.html
+
*http://edu4android.com/es/guide/topics/fundamentals/fragments.
+
 
*http://chuwiki.chuidiang.org/index.php?title=Fragments_en_Android
 
*http://chuwiki.chuidiang.org/index.php?title=Fragments_en_Android
 +
*http://jarroba.com/programar-fragments-fragmentos-en-android/
  
==La clase Fragment==
+
== 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'''''
+
*Un fragment es una parte de una actividad, con su propia interfaz de usuario y comportamiento.  
*Por otro lado podemos usar el mismo '''''Fragment''''' para asignarlo a diferentes '''''Activity'''''
+
*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'''''
 
*En la figura tenemos una app con dos '''''Activity''''', y otra app con una única '''''Activity''''' que contiene dos '''''Fragment'''''
[[Image:fragment1.png]]
+
 
==Herencia==
+
[[Image:Fragment1.png|RTENOTITLE]]  
*La clase '''''Fragment''''' hereda directamente de '''''Object''''' como podemos ver en la imagen
+
 
 +
== Herencia ==
 +
 
 +
*La clase '''''Fragment''''' hereda directamente de '''''Object''''' como podemos ver en la imagen  
 
*A su vez directamente derivamos en '''''Fragment''''' especializados que veremos en otro capitulo (DialogFragment, ListFragment, PreferenceFragment, WebViewFragment)
 
*A su vez directamente derivamos en '''''Fragment''''' especializados que veremos en otro capitulo (DialogFragment, ListFragment, PreferenceFragment, WebViewFragment)
<br/>
+
 
[[Imagen:claseFragment.png]]
+
<br> [[Image:ClaseFragment.png|RTENOTITLE]]  
===Haciendo un fragment===
+
 
*Todo fragmente ha de tener asociado un layout y una clase java
+
=== Ciclo de vida del fragment ===
*Un Fragment tiene su propio ciclo de vida que conviene conocer.
+
*Un Fragment tiene su propio ciclo de vida que conviene conocer.  
**Un '''''Fragment''''' no se puede ejecutar de forma independiente; Para ser ejecutado en una app siempre pertenecerá a una '''''Activity'''''.
+
**Un '''''Fragment''''' no se puede ejecutar de forma independiente; Para ser ejecutado en una app siempre pertenecerá a una '''''Activity'''''.  
 
*Por lo tanto su ciclo de vida estará ligado o afectado al ciclo de vida de la '''''Acivity''''' de la que depende
 
*Por lo tanto su ciclo de vida estará ligado o afectado al ciclo de vida de la '''''Acivity''''' de la que depende
===Ciclo de Vida de Fragment===
+
 
 +
=== Ciclo de Vida de Fragment ===
 +
 
 
*La siguiente imagen muestra el ciclo de vida de un '''''Fragmnent''''' desde que se va a cargar hasta que está en ejecución
 
*La siguiente imagen muestra el ciclo de vida de un '''''Fragmnent''''' desde que se va a cargar hasta que está en ejecución
<br/>
+
 
[[Image:cicloVidaFragment.png]]
+
<br> [[Image:CicloVidaFragment.png|RTENOTITLE]]  
 +
 
 
*Explicamos brevemente cuando entran en acción
 
*Explicamos brevemente cuando entran en acción
 +
 
  public void onAttach(Activity );
 
  public void onAttach(Activity );
*Llamado una vez que el '''''Fragment''''' es asociado a la '''''Activity'''''
+
 
*Es el primer método del Callback invocado,
+
*Llamado una vez que el '''''Fragment''''' es asociado a la '''''Activity'''''  
*En el se recibe una instancia de la '''''Activity ''''' dentro de la cual se va a ejecutar el fragment.
+
*Es el primer método del Callback invocado,  
*
+
*En el se recibe una instancia de la '''''Activity''''' dentro de la cual se va a ejecutar el fragment.  
 +
*Invocado para crear el Fragment dentro de nuestra app.
 +
onCreate(Bundle)
 +
Llamado cuando el  el Fragment se va a crear por primera vez
 +
 
 
  public View onCreateView(LayoutInflater, ViewGroup, Bundle)
 
  public View onCreateView(LayoutInflater, ViewGroup, Bundle)
*Aporta su layout para la activity principal
+
 
*LayoutInflater ==> objeto que permite retornar el layout para que se incorpore en el ViewGroup
+
*Aporta su layout para la activity principal  
*ViewGrup ==> Es el contenedor donde se va a incorporar la view de este fragment  
+
*LayoutInflater ==&gt; objeto que permite retornar el layout para que se incorpore en el ViewGroup  
*Bundle ==> Si no es null quiere decir que estamos reconstruyendo el fragment cuyo estado previamente se había guardado.
+
*ViewGrup ==&gt; Es el contenedor donde se va a incorporar la view de este fragment  
Ejemplo
+
*Bundle ==&gt; Si no es null quiere decir que estamos reconstruyendo el fragment cuyo estado previamente se había guardado.
<source lang=java>
+
 
 +
Ejemplo <source lang="java">
 
  ....
 
  ....
 
  public View onCreateView (LayoutInflater inflador ViewGroup contenedor, Bundle estado{
 
  public View onCreateView (LayoutInflater inflador ViewGroup contenedor, Bundle estado{
 
         return (inflador.inflate(R.layout.layout_este_fragment, contendor,false);                 
 
         return (inflador.inflate(R.layout.layout_este_fragment, contendor,false);                 
 
}
 
}
</source>
+
</source>  
 +
 
 
  public void onActivityCreated(Bundle )
 
  public void onActivityCreated(Bundle )
 +
 
*Se llama cuando el callback onCreate() de la actividad ha finalizado
 
*Se llama cuando el callback onCreate() de la actividad ha finalizado
 +
 
  public void onStart()
 
  public void onStart()
  
 
  public void onResume()
 
  public void onResume()
 +
 
*Ambas dos tienen el mismo significado que el de la clase '''''Activity'''''
 
*Ambas dos tienen el mismo significado que el de la clase '''''Activity'''''
  
 
*Hay una serie de métodos que conviene conocer:
 
*Hay una serie de métodos que conviene conocer:
;onAttach
 
  
onAttach(Activity)
+
onCreate
;onCreate
+
 
:Invocado para crear el '''''Fragment''''' dentro de nuestra app.
+
;onCreateView  
  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
 
: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.
 
*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
+
 
 +
;onActivityCreated  
 
:Cuando la '''''Activity''''' de la que depende el '''''Fragment''''', ya ha sido creada
 
: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
 
*A partir de ahora podemos invocar a getActivity() para recuperar una referencia a dicha activity
onActivityCreated(Bundle);
 
<!-- 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.
 
onStart() makes the fragment visible to the user (based on its containing activity being started).
 
onResume() makes the fragment interacting with the user (based on its containing activity being resumed).
 
  
As a fragment is no longer being used, it goes through a reverse series of callbacks:
+
Una vez que el fragment ha sido creado y está activo, .lo mismo que le sucede a la Activity puede ser pasado de forma total o parcial a segundo plano pasando por los métodos
 +
[[Imagen:CicloVidaFramgent2.png]]
 +
<br/>
 +
onPause()
 +
*Hace tiempo que no se interactúa con el
 +
*El fragment se queda parcialmente oculto y ya no estaría en primer plano.
 +
onStop()
 +
*El fragment ya no está visible por que la acrividad se ha empezado a parar o la propia actividad a iniciado este método
 +
 
 +
    onDestroyView()
 +
*Permite al fragment liberar de dorma organizada los recursos que tenga asociados a él
 +
    onDestroy()
 +
    onDetach()
 +
Ambos tres se ejecutan de forma  secuencial e inicial la destrucción del '''''fragment'''''
 +
 
 +
<!-- HACER un ejemplo-->
 +
 
 +
 
 +
===Trabanado con Fragment===
 +
*Todo fragmente ha de tener asociado un layout y una clase java
 +
 
 +
=== Activity propietaria del Fragment ===
 +
 
 +
 
 +
*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
  
    onPause() fragment is no longer interacting with the user either because its activity is being paused or a fragment operation is modifying it in the activity.
+
#Que la acitivity se ejecuta en un móvil pequeño, solo mostraremos uno de los layouts del framgent en un memento determinado  
    onStop() fragment is no longer visible to the user either because its activity is being stopped or a fragment operation is modifying it in the activity.
+
#Que la activity se ejecuta en una tablet grande en posición horizontal.  
    onDestroyView() allows the fragment to clean up resources associated with its View.
+
    onDestroy() called to do final cleanup of the fragment's state.
+
    onDetach() called immediately prior to the fragment no longer being associated with its activity.
+
-->
+
*Cada Fragment tiene su layout
+
===Activity propietaria de los fragmente===
+
*http://jarroba.com/programar-fragments-fragmentos-en-android/
+
*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.
 
#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
+
 
<!--TRAS UNA SERIE DE PROBLEMAS VOY A LEER EL DEVELOPER DE ANDROID Y LUEGO RETORNO-->
+
*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 <!--TRAS UNA SERIE DE PROBLEMAS VOY A LEER EL DEVELOPER DE ANDROID Y LUEGO RETORNO-->  
*Un Fragment solo puede funcionar en el código ligado a una '''''Activity'''''
+
*Un Fragment solo puede funcionar en el código ligado a una '''''Activity'''''  
*Para poder interaccionar con fragment: '''''FragementManager'''''
+
*Para poder interaccionar con fragment: '''''FragementManager'''''  
*Obetener un '''''Fragementmanager''''' = Activity.getFragmentManager() o Fragment.getFragmentManager()
+
*Obetener un '''''Fragementmanager''''' = Activity.getFragmentManager() o Fragment.getFragmentManager()  
 
*Todas las subclases de un fragment deben de incluir un constructor vacion <!--MRM-->público para que al restaurar una actividad no nos de un posible error
 
*Todas las subclases de un fragment deben de incluir un constructor vacion <!--MRM-->público para que al restaurar una actividad no nos de un posible error
===Los Fragments===
+
 
*http://developer.android.com/guide/components/fragments.html
+
=== Los Fragments ===
*You can think of a fragment is a modular section of an activity.
+
 
*When an Activity is running, you can manipulate each fragment independently (add them, remove them ,...).
+
*http://developer.android.com/guide/components/fragments.html  
*When you perform such a fragment transaction (cuando ejecutas un fragment con transaccional)...  
+
*You can think of a fragment is a modular section of an activity.  
Puedes poner el fragment en la pila administrada por la activity pudiendo luego recuperarla con el backward (boton de atrás ).
+
*When an Activity is running, you can manipulate each fragment independently (add them, remove them ,...).  
Al añadir un fragment como parte del UI de una activity, Este UI pertenecerá a la jerarquía de la vista de la actividad (formando parte de su ViewGroup o contenedor principal), definiendo el fragment su propio layout.
+
*When you perform such a fragment transaction (cuando ejecutas un fragment con transaccional)...
 +
 
 +
Puedes poner el fragment en la pila administrada por la activity pudiendo luego recuperarla con el backward (boton de atrás ). Al añadir un fragment como parte del UI de una activity, Este UI pertenecerá a la jerarquía de la vista de la actividad (formando parte de su ViewGroup o contenedor principal), definiendo el fragment su propio layout.  
 +
 
 
*Existen dos formas de agregar un fragment a un layout
 
*Existen dos formas de agregar un fragment a un layout
#declarando en el fichero xml del la activity como un <fragment>
+
 
 +
#declarando en el fichero xml del la activity como un &lt;fragment&gt;
 
#En la aplicación añadiendo al ViewGroup.
 
#En la aplicación añadiendo al ViewGroup.
*También se puede usar un fragment sin UI (no entiendo para qué ????)
+
 
===Creando single and multi pane Layout===
+
*También se puede usar un fragment sin UI (no entiendo para qué&nbsp;????)
http://developer.android.com/guide/practices/tablets-and-handsets.html
+
 
 +
=== Creando single and multi pane Layout ===
 +
 
 +
http://developer.android.com/guide/practices/tablets-and-handsets.html  
 +
 
 
*Para usar el potencial de los fragment a la hora de realizar el diseño tenemos dos opciones
 
*Para usar el potencial de los fragment a la hora de realizar el diseño tenemos dos opciones
#Varios Fragments en 1 Activity
+
 
 +
#Varios Fragments en 1 Activity
 +
 
 
  independientemente del tamaño de la pantalla del dispositivo (tablet o handset), definimos una  
 
  independientemente del tamaño de la pantalla del dispositivo (tablet o handset), definimos una  
 
  sola '''''Activity'''''
 
  sola '''''Activity'''''
 
  En tiempo de ejecución se decide si combinamos los Fragment en la Activity, o cargamos solo uno  
 
  En tiempo de ejecución se decide si combinamos los Fragment en la Activity, o cargamos solo uno  
 
  de ellos
 
  de ellos
 +
 
#Varios Fragments y varias Activitys
 
#Varios Fragments y varias Activitys
 +
 
  Si el tamaño del dispositivo lo permite cargamos los Fragment en una de las Activity,  si no cargaremos cada una de las '''''Activity'''''
 
  Si el tamaño del dispositivo lo permite cargamos los Fragment en una de las Activity,  si no cargaremos cada una de las '''''Activity'''''
  
 
*Ambas opciones son buenas
 
*Ambas opciones son buenas
La primera opción requiere que determinemos el tamaño de la pantalla del dispositiv en tiempo de ejecución y entonces decidamos añadir cada fragment según sea apropiado.
+
 
 +
La primera opción requiere que determinemos el tamaño de la pantalla del dispositiv en tiempo de ejecución y entonces decidamos añadir cada fragment según sea apropiado.  
  
 
*Dependiendo del tamaño de la ventana el sistema aplica diferentes xml layuout:
 
*Dependiendo del tamaño de la ventana el sistema aplica diferentes xml layuout:
#res/layout/main.xml para handset (pantallas pequeñas)
+
 
 +
#res/layout/main.xml para handset (pantallas pequeñas)  
 
#res/layout-large/main.xml para tables
 
#res/layout-large/main.xml para tables
  
*En nuestro ejemplo vamos a usar el segundo caso y tendremos en total 3 Activity y 2 Fragment
+
*En nuestro ejemplo vamos a usar el segundo caso y tendremos en total 3 Activity y 2 Fragment  
*Seguiremos la imagen del dibujo
+
*Seguiremos la imagen del dibujo  
 
*Tenemos en total 3 Activity y 2 Fragment como se expresa a continuacion
 
*Tenemos en total 3 Activity y 2 Fragment como se expresa a continuacion
[[Imagne:FragmentAgenda.png]]
+
 
<!--Estos bárbaros se nos han quedado calvos.... vuelvo a -->
+
[[Imagne:FragmentAgenda.png]] <!--Estos bárbaros se nos han quedado calvos.... vuelvo a -->  
 +
 
 
*http://developer.android.com/reference/android/app/Fragment.html#Layout
 
*http://developer.android.com/reference/android/app/Fragment.html#Layout
===Layout===
+
 
Si un Activity va a incluir el layout de un fragment, debe en su xml incluir el tag <fragmet>
+
=== Layout ===
 +
 
 +
Si un Activity va a incluir el layout de un fragment, debe en su xml incluir el tag &lt;fragmet&gt;

Revisión de 08:34 19 mar 2014

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

RTENOTITLE

Herencia

  • La clase Fragment hereda directamente de Object como podemos ver en la imagen
  • A su vez directamente derivamos en Fragment especializados que veremos en otro capitulo (DialogFragment, ListFragment, PreferenceFragment, WebViewFragment)


RTENOTITLE

Ciclo de vida del fragment

  • Un Fragment tiene su propio ciclo de vida que conviene conocer.
    • Un Fragment no se puede ejecutar de forma independiente; Para ser ejecutado en una app siempre pertenecerá a una Activity.
  • Por lo tanto su ciclo de vida estará ligado o afectado al ciclo de vida de la Acivity de la que depende

Ciclo de Vida de Fragment

  • La siguiente imagen muestra el ciclo de vida de un Fragmnent desde que se va a cargar hasta que está en ejecución


RTENOTITLE

  • Explicamos brevemente cuando entran en acción
public void onAttach(Activity );
  • Llamado una vez que el Fragment es asociado a la Activity
  • Es el primer método del Callback invocado,
  • En el se recibe una instancia de la Activity dentro de la cual se va a ejecutar el fragment.
  • Invocado para crear el Fragment dentro de nuestra app.
onCreate(Bundle)

Llamado cuando el el Fragment se va a crear por primera vez

public View onCreateView(LayoutInflater, ViewGroup, Bundle)
  • Aporta su layout para la activity principal
  • LayoutInflater ==> objeto que permite retornar el layout para que se incorpore en el ViewGroup
  • ViewGrup ==> Es el contenedor donde se va a incorporar la view de este fragment
  • Bundle ==> Si no es null quiere decir que estamos reconstruyendo el fragment cuyo estado previamente se había guardado.
Ejemplo
 ....
 public View onCreateView (LayoutInflater inflador ViewGroup contenedor, Bundle estado{
        return (inflador.inflate(R.layout.layout_este_fragment, contendor,false);                 
}
public void onActivityCreated(Bundle )
  • Se llama cuando el callback onCreate() de la actividad ha finalizado
public void onStart()
public void onResume()
  • Ambas dos tienen el mismo significado que el de la clase Activity
  • Hay una serie de métodos que conviene conocer:

onCreate

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

Una vez que el fragment ha sido creado y está activo, .lo mismo que le sucede a la Activity puede ser pasado de forma total o parcial a segundo plano pasando por los métodos CicloVidaFramgent2.png

onPause()
  • Hace tiempo que no se interactúa con el
  • El fragment se queda parcialmente oculto y ya no estaría en primer plano.
onStop()
  • El fragment ya no está visible por que la acrividad se ha empezado a parar o la propia actividad a iniciado este método
   onDestroyView()
  • Permite al fragment liberar de dorma organizada los recursos que tenga asociados a él
   onDestroy()
   onDetach() 
Ambos tres se ejecutan de forma  secuencial e inicial la destrucción del fragment


Trabanado con Fragment

  • Todo fragmente ha de tener asociado un layout y una clase java

Activity propietaria del Fragment

  • 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
  • Un Fragment solo puede funcionar en el código ligado a una Activity
  • Para poder interaccionar con fragment: FragementManager
  • Obetener un Fragementmanager = Activity.getFragmentManager() o Fragment.getFragmentManager()
  • Todas las subclases de un fragment deben de incluir un constructor vacion público para que al restaurar una actividad no nos de un posible error

Los Fragments

  • http://developer.android.com/guide/components/fragments.html
  • You can think of a fragment is a modular section of an activity.
  • When an Activity is running, you can manipulate each fragment independently (add them, remove them ,...).
  • When you perform such a fragment transaction (cuando ejecutas un fragment con transaccional)...

Puedes poner el fragment en la pila administrada por la activity pudiendo luego recuperarla con el backward (boton de atrás ). Al añadir un fragment como parte del UI de una activity, Este UI pertenecerá a la jerarquía de la vista de la actividad (formando parte de su ViewGroup o contenedor principal), definiendo el fragment su propio layout.

  • Existen dos formas de agregar un fragment a un layout
  1. declarando en el fichero xml del la activity como un <fragment>
  2. En la aplicación añadiendo al ViewGroup.
  • También se puede usar un fragment sin UI (no entiendo para qué ????)

Creando single and multi pane Layout

http://developer.android.com/guide/practices/tablets-and-handsets.html

  • Para usar el potencial de los fragment a la hora de realizar el diseño tenemos dos opciones
  1. Varios Fragments en 1 Activity
independientemente del tamaño de la pantalla del dispositivo (tablet o handset), definimos una 
sola Activity
En tiempo de ejecución se decide si combinamos los Fragment en la Activity, o cargamos solo uno 
de ellos
  1. Varios Fragments y varias Activitys
Si el tamaño del dispositivo lo permite cargamos los Fragment en una de las Activity,  si no cargaremos cada una de las Activity
  • Ambas opciones son buenas

La primera opción requiere que determinemos el tamaño de la pantalla del dispositiv en tiempo de ejecución y entonces decidamos añadir cada fragment según sea apropiado.

  • Dependiendo del tamaño de la ventana el sistema aplica diferentes xml layuout:
  1. res/layout/main.xml para handset (pantallas pequeñas)
  2. res/layout-large/main.xml para tables
  • En nuestro ejemplo vamos a usar el segundo caso y tendremos en total 3 Activity y 2 Fragment
  • Seguiremos la imagen del dibujo
  • Tenemos en total 3 Activity y 2 Fragment como se expresa a continuacion

Imagne:FragmentAgenda.png

Layout

Si un Activity va a incluir el layout de un fragment, debe en su xml incluir el tag <fragmet>