¿Qué son los Fragments en Kotlin y cómo usarlos en tu app?

| Última modificación: 1 de noviembre de 2024 | Tiempo de Lectura: 4 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Los fragments en Kotlin son elementos que nos permiten crear interfaces dinámicas. Si bien han perdido algo de popularidad con el pasar de los años, siguen siendo indispensables en algunos contextos en donde hay que dividir y reutilizar pantallas en una aplicación.

Por esta razón el día de hoy te queremos enseñar qué son los fragments en Kotlin y cómo puedes sacarle el mayor provecho en tus apps.

Fragments en Kotlin

¿Qué son los fragments en Kotlin?

Los fragments en kotlin son una porción de interfaz de usuario que forma parte de una Activity. Haz de cuenta que es como cuando tienes una pantalla principal y quieres dividirla en varias partes, cada una con una función distinta. En lugar de crear múltiples Activities, puedes utilizar Fragments en kotlin, los cuales te permiten organizar mejor las interfaces y reutilizar el código.

Algunas de sus características má sdestacadas son:

  • Reutilizables: Puedes usar el mismo fragment en diferentes actividades.
  • Flexibles: Pueden adaptarse a diferentes tamaños de pantalla, como en tablets o dispositivos con pantalla dividida.
  • Modulares: Los fragments facilitan la gestión y el mantenimiento de las interfaces al dividirlas en secciones.

¿Por qué usar Fragments en Kotlin?

Los Fragments en Kotlin pueden llegar a sernos muy útiles en diversas situaciones, pero lo son mucho más para aplicaciones complejas donde la organización es imprescindible. Por ejemplo:

  • División de pantalla: Puedes mostrar varios fragments en una misma pantalla en dispositivos grandes, como tablets.
  • Interfaces dinámicas: Te permiten cambiar partes de la UI sin reemplazar toda la Activity.
  • Facilidad en la navegación: Facilitan el movimiento entre diferentes secciones de la app sin necesidad de crear nuevas actividades.

¿Cómo crear fragments en Kotlin?

Crear un nuevo Fragment

Para empezar, crea un nuevo fragment desde el menú de Android Studio siguiendo estos pasos:

  1. Haz clic derecho en el paquete principal de tu app y selecciona New > Fragment > Fragment (Blank).
  2. Ponle un nombre a tu fragment (por ejemplo, ExampleFragment) y selecciona Create layout XML para generar el archivo de diseño.

Configurar el layout del Fragment

Cada fragment tiene su propio archivo de diseño, donde puedes definir la interfaz. Aquí tienes un ejemplo sencillo para un fragment con un fondo azul y un botón en el centro:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/blue">

<Button
android:id="@+id/btnClickMe"
android:layout_gravity="center"
android:text="Click me"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</FrameLayout>

Definir el código del Fragment

En el archivo de código del fragment (por ejemplo, ExampleFragment.kt), utiliza el método onCreateView para inflar el diseño y añadir cualquier lógica específica del fragment:

class ExampleFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_example, container, false)
}
}

Ciclo de vida de los Fragments en Kotlin

Los Fragments tienen un ciclo de vida similar al de las Activities, pero con algunas particularidades. Estos son algunos métodos clave que se ejecutan durante el ciclo de vida de un fragment:

  1. onAttach(): El fragment se asocia a la activity.
  2. onCreate(): El fragment se inicializa, pero aún no tiene vista.
  3. onCreateView(): Se infla la interfaz de usuario del fragment.
  4. onActivityCreated(): La activity está completamente creada.
  5. onStart(): El fragment es visible.
  6. onResume(): El fragment es interactivo.
  7. onPause(): El fragment está parcialmente visible.
  8. onStop(): El fragment ya no es visible.
  9. onDestroyView(): Se destruye la vista del fragment.
  10. onDestroy(): El fragment finaliza.
  11. onDetach(): Se desvincula de la activity.

Conocer el ciclo de vida es importante para gestionar los eventos de cada fragment y su interacción con la activity.

¿Cómo añadir un Fragment a una Activity?

Existen dos maneras de añadir un fragment a una activity: mediante XML o mediante código. Veamos ambas formas:

Añadir un Fragment mediante XML

Puedes añadir un fragment directamente en el archivo de diseño de la activity:

<fragment
android:name="com.example.myapp.ExampleFragment"
android:id="@+id/fragment_example"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

Añadir un Fragment mediante código

Si prefieres hacerlo dinámicamente, utiliza el FragmentManager y FragmentTransaction para añadir el fragment en tu código:

val fragment = ExampleFragment()
supportFragmentManager.beginTransaction()
.add(R.id.fragment_container, fragment)
.commit()

Esta técnica te permite tener mayor flexibilidad para intercambiar fragments en tiempo de ejecución.

Comunicación entre Fragments y Activity

Los fragments suelen necesitar comunicarse con su activity contenedora. Para esto puedes utilizar una interfaz en el fragment y hacer que la activity la implemente.

  • Define una interfaz en tu fragment:
interface OnFragmentInteractionListener {
fun onFragmentInteraction()
}

Implementa la interfaz en la activity:

class MainActivity : AppCompatActivity(), OnFragmentInteractionListener {
override fun onFragmentInteraction() {
// Maneja la interacción aquí
}
}
  • Llama a la función de la interfaz desde el fragment cuando sea necesario:
listener?.onFragmentInteraction()

    Esta técnica permite una comunicación clara entre fragment y activity, manteniendo el código organizado.

    Si quieres seguir aprendiendo sobre desarrollo web y otras temáticas del mundo tecnológico, no dudes en inscribirte en nuestro bootcamp de desarrollo web,, en donde aprenderás todas las habilidades necesarias para incursionar en el mundo laboral. ¡Pide información ahora y sigue escalando en tus metas!

    Alberto Casero

    Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

    Posts más leídos

    ¡CONVOCATORIA ABIERTA!

    Desarrollo Web

    Full Stack Bootcamp

    Clases en Directo | Profesores en Activo | Temario 100% actualizado