El tutor de nuestro curso online de Desarrollo de Aplicaciones para Android, Víctor Ramírez Las,…
Activity y Fragments
En este tutorial se van a describir los conceptos de Activity y Fragment, dos elementos fundamentales en las aplicaciones Android. Veremos también las ventajas que presentan los Fragments y se profundizará en el nuevo paradigma que proporcionan.
En un siguiente tutorial y video veremos de forma práctica su uso, desarrollando un proyecto Android en el que se definirán varios Fragments dentro de una misma Activity e interaccionando entre ellos.
Definiciones de Activity y Fragments
Vamos a definir en primer lugar estos conceptos:
Activity
De una forma resumida podríamos definirla como cada una de las pantallas que se crean en una aplicación Android. Para describir una Activity podemos identificar dos partes bien diferenciadas, la parte lógica y la parte gráfica.
- La parte lógica sería la parte programática o código trasero, que es una clase Java encargada de implementar las funcionalidades de la aplicación.
- La parte gráfica consiste en un archivo xml, situado en la carpeta nombreproyecto/res/layout/archivo.xml, dónde se definen los componentes gráficos que formarán la interfaz gráfica del usuario.
Parte Lógica de una Activity:
1 2 3 4 5 6 7 8 |
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } |
Parte Gráfica de una Activity:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.academiaandroid.activity.MainActivity" tools:ignore="MergeRootFrame" > <ImageView android:id="@+id/imageView1" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/g4569" /> </FrameLayout> |
* Imagen: ejemplo de activity, cada una de las pantallas que definimos en nuestra App
Documentación Oficial Android Activity
Fragment
Son componentes que funcionan dentro del ámbito de una Activity. Su finalidad es la de ampliar parte de la lógica utilizada para la navegación entre pantallas o Activities, pudiendo definir varios Fragments dentro de una misma Activity, interaccionando entre ellos. Fueron introducidos con la versión de Android 3.0 (API level 11), y representan el comportamiento de una porción de la interfaz de usuario asociada a una Activity.
Todo Fragment debe estar embebido dentro de una Activity, por lo que el ciclo de vida de un Fragment está ligado al de la Activity dónde se ha definido:
- Al pausar una Activity se pausarán todos los Fragments definidos dentro de esta.
- Si se destruye una Activty, todos los Fragments que contenga serán también destruidos.
- Si la Activity se encuentra en ejecución, es posible manipular de manera independiente cada Fragment, inclusive destruirlo.
* Imagen: una Activity con dos Fragments embebidos en ella
Documentación Oficial Android Fragment:
Ciclo de Vida de un Fragment
Para poder crear un Fragment es necesario crear una subclase de Fragment. La clase Fragment, al igual que la clase Activity, contiene funciones de tipo callback, (cuando una función es pasada como argumento a otra función) como pueden ser las funciones onCreate(), onStart(), onStop() y onPause().
Al menos, en todo ciclo de vida de un Fragment, se recomienda utilizar las siguientes funciones:
- onCreate() : El sistema llama a esta función cuando se crea el Fragment.
- onCreateView() : El sistema llama a esta función cuando se dibuja por primera vez el Fragment en la interfaz de usuario.
- onPause() : El sistema llama a esta función cuando el usuario deja de utilizar el Fragment (no implica que éste sea destruido).
*Imagen: ciclo de vida de un Fragment mientras su Activity está en ejecución.
Cambio de Filosofía
Tras la introducción de los Fragments en el S.O. Android (en la versión 3.0 como se ha comentado anteriormente), permitió la división de una Activity en Fragments, posibilitando la modificación de la apariencia de una Activity en tiempo de ejecución y preservando los cambios en la pila de procesos de la Activity:
*En esta imagen podemos apreciar como dos módulos de una interfaz de usuario dividida en dos Activities pueden combinarse en una sola Activity mediante el uso de dos Fragments.
Ventajas del uso de Fragments
- Proporciona diseños más dinámicos y flexibles para pantallas más grandes.
- No son necesarios cambios muy profundos en la jerarquía de vistas.
- Cada Fragment definido en una Activity es independiente del resto de Fragments, y por lo tanto reutilizable.
- Facilita la tarea de desarrollo de Apps que funcionen correctamente tanto en tablets como en dispositivos móviles (multidispositivo).
- Un Fragment tiene su propio Layout y su propio ciclo de vida.
Autor: José Antonio Rodríguez Gázquez- Academia Android
Imágenes ‘ciclo de vida de un Fragment’ y ‘activity con 2 fragment’ de Android Developer con licencia Apache 2.0
Esta entrada tiene 4 comentarios
Los comentarios están cerrados.
[…] mencionar que tenemos otros componentes que funcionan dentro del ámbito de una Activity, los Fragments, que amplían y enriquecen las posibilidades de interacción con el […]
Aplicaciones soportadas para varios tamaños de pantalla”,
“Aprende a desarrollar en Android para APPs multi-
dispositivo” o incluso “Fragments fácil o para Dummies”
Componentes que funcionan dentro del ámbito de una
Activity. la finalidad de estos es ampliar parte de la
lógica utilizada para la navegación entre pantallas o
Activities, definiendo varios Fragments dentro de
una misma Activity, y representan el comportamiento de una porción de la
interfaz de usuario asociada a una Activity.
Muy buen aporte. Gracias.
Gracias Ana por tu comentario!