Un Fragment representa un comportamiento o una parte de la interfaz de usuario en una Activity. Puedes combinar múltiples fragmentos en una sola actividad para crear una IU multipanel y volver a usar un fragmento en múltiples actividades. Puedes pensar en un fragmento como una sección modular de una actividad que tiene su ciclo de vida propio, recibe sus propios eventos de entrada y que puedes agregar o quitar mientras la actividad se esté ejecutando (algo así como una «subactividad» que puedes volver a usar en diferentes actividades). [developer.android.com]
Es decir, un fragment nos permite:
La Modularidad: Es decir, dividir en partes más sencillas el código de una actividad compleja para un mejor entendimiento y mantenimiento y así convertir una sola actividad en un UI multi-panel.
Reusabilidad: Es decir, reutilizar Fragments en más de una actividad reduciendo así el código y tiempo de desarrollo.
Adaptabilidad: Representa una interfaz de usuario con diferentes fragmentos y diseños dependiendo de la orientación y tamaño de la pantalla.
A continuación un ejemplo de la creación y uso de un Fragment en una actividad utilizando Android Studio
Paso 1. El proyecto base
Creamos un nuevo proyecto en Android Studio con el nombre de «Ejemplo de Fragmento«, utilizaremos como min SDK API 16 Android 4.1 para tener una mayor compatibilidad con distintos dispositivos. A continuación elegimos un Empty Activity, dejamos el MainActivity y activity_main como están y finalmente presionamos el botón «finish» para crear el proyecto.
Paso 2. El Fragment
Android Studio cuenta con la opción de crear un Fragment y su archivo XML correspondiente de manera automática, sin embargo eso nos agrega mucho código, código que por el momento no nos interesa conocer. Así que en este tutorial crearemos ambos archivos manualmente.
Creamos una nueva clase, que llamamos «MiFragmento«, a continuación agregamos un nuevo layout con el nombre de fragment_mifragmento. Nuestro proyecto actual a continuación.
Abrimos la clase MiFragmento y reemplazamos por el siguiente código:
import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class MiFragmento extends Fragment { /** * Nueva instancia del fragmento * */ public static MiFragmento newInstance() { return new MiFragmento(); } /** * La interfaz del fragmento * */ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_mifragmento, container, false); } }
Ahora abrimos el archivo XML fragment_mifragmento y reemplazamos por:
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="20dp" android:background="#e45529" tools:context="net.jc_mouse.ejemplodefragmento.MiFragmento"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:textColor="#FFFFFF" android:text="HOLA MUNDO CRUEL!!! yo soy un Fragment :)" /> </FrameLayout>
En este archivo definimos el Fragment y su contenido, que en este caso consta de un solo TextView. Importante, en tools:context, indicamos la ruta de la clase MiFragmento a la cual este layout esta relacionado.
Paso 3. Agregando el Fragment a la actividad principal
Abrimos el archivo activity_main y reemplazamos el TextView que se crea por defecto por:
<fragment android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/fragment" class="net.jc_mouse.ejemplodefragmento.MiFragmento"/>
es decir:
Donde en class indicamos la ruta de la clase MiFragmento
Ejecutamos y obtenemos:
enjoy!!!
En este post vemos un ejemplo de como convertir un archivo de imagen JPG en un archivo PDF utilizando para ellos la libr[...]
Si quieres cambiar el nombre de tus atributos sin tener que reescribir código java por X o Y razón, GSON te permite reno[...]
El componente swing JLabel nos permite cargar una imagen con la propiedad setIcon, sin embargo la imagen no toma el tama[...]
Cuando tenemos dominio web pero aun no tenemos el contenido listo es común colocar en su lugar una simple web de aviso q[...]
La Policía Boliviana lanza su propia aplicación móvil que está destinada para denunciar hechos de corrupción dentro de l[...]
XJC es una herramienta de linea de comandos del compilador de esquemas de JAXB que se puede utilizar para convertir un e[...]