Introducción a Fragmentos | Android

Un fragmento es una parte de una actividad que permite un diseño de actividad más modular. Un fragmento encapsula la funcionalidad para que sea más fácil de reutilizar en actividades y diseños.
Los dispositivos Android existen en una variedad de tamaños de pantalla y densidades. Los fragmentos simplifican la reutilización de componentes en diferentes diseños y su lógica. Puede crear diseños de un solo panel para dispositivos (teléfonos) y diseños de varios paneles para tabletas. También puede usar fragmentos para admitir diferentes diseños para orientación horizontal y vertical en un teléfono inteligente.

La siguiente imagen muestra cómo se pueden combinar dos módulos de interfaz de usuario definidos por fragmentos en una actividad para un diseño de tableta, pero separados para un diseño de teléfono.

Ciclo de vida del fragmento

Los fragmentos de Android tienen su propio ciclo de vida muy similar a una actividad de Android.

  • onAttach() : la instancia del fragmento está asociada con una instancia de actividad. El fragmento y la actividad no están completamente inicializados. Por lo general, obtiene en este método una referencia a la actividad que usa el fragmento para un trabajo de inicialización adicional.
  • onCreate() : el sistema llama a este método al crear el fragmento. Debe inicializar los componentes esenciales del fragmento que desea conservar cuando el fragmento se pausa o se detiene y luego se reanuda.
  • onCreateView() : el sistema llama a esta devolución de llamada cuando es hora de que el fragmento dibuje su interfaz de usuario por primera vez. Para dibujar una interfaz de usuario para su fragmento, debe devolver un componente Ver de este método que es la raíz del diseño de su fragmento. Puede devolver un valor nulo si el fragmento no proporciona una interfaz de usuario.
  • onActivityCreated() : onActivityCreated() se llama después del método onCreateView() cuando se crea la actividad del host. Se han creado instancias de actividad y fragmento, así como la jerarquía de vista de la actividad. En este punto, se puede acceder a la vista con el método findViewById(). ejemplo. En este método, puede instanciar objetos que requieren un objeto de contexto
  • onStart() : el método onStart() se llama una vez que el fragmento se vuelve visible.
  • onResume() : el fragmento se activa.
  • onPause() : el sistema llama a este método como la primera indicación de que el usuario está dejando el fragmento. Por lo general, aquí es donde debe confirmar cualquier cambio que deba persistir más allá de la sesión de usuario actual.
  • onStop() : el fragmento se detendrá llamando a onStop()
  • onDestroyView(): la vista de fragmentos se destruirá después de llamar a este método
  • onDestroy() : llamado para realizar la limpieza final del estado del fragmento, pero no se garantiza que la plataforma Android lo llame.

Tipos de Fragmentos

  • Fragmentos de un solo cuadro: los fragmentos de un solo cuadro se utilizan para dispositivos de mano como móviles, aquí podemos mostrar solo un fragmento como vista.
  • Fragmentos de lista : los fragmentos que tienen una vista de lista especial se denominan fragmento de lista
  • Transacción de fragmentos : uso con transacción de fragmentos. podemos mover un fragmento a otro fragmento.

Manejo del ciclo de vida de los fragmentos

Un fragmento existe en tres estados:

  • Reanudado: el fragmento es visible en la actividad en ejecución.
  • En pausa: otra actividad está en primer plano y tiene el foco, pero la actividad en la que se encuentra este fragmento todavía está visible (la actividad en primer plano es parcialmente transparente o no cubre toda la pantalla).
  • Detenido: el fragmento no es visible. La actividad del host se detuvo o el fragmento se eliminó de la actividad pero se agregó a la pila de respaldo. Un fragmento detenido todavía está vivo (el sistema conserva toda la información de estado y miembro). Sin embargo, ya no es visible para el usuario y se cancelará si se cancela la actividad.

El efecto del ciclo de vida de la actividad en el ciclo de vida del fragmento:

Definición y uso de fragmentos

Para definir un nuevo fragmento, extendemos la clase android.app.Fragment o una de sus subclases.

package com.saket.geeksforgeeks.demo;
  
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
  
public class DetailFragment extends Fragment 
{
      
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                            Bundle savedInstanceState) 
        {
              
            View view = inflater.inflate(R.layout.fragment_rssitem_detail,
                container, false);
                  
            return view;
        }
  
    public void setText(String text) 
    {
        TextView view = (TextView) getView().findViewById(R.id.detailsText);
        view.setText(text);
    }
}

Fragmento de transacción: mientras que para una actividad dinámica, tenemos botones configurados para una interfaz de usuario interactiva. Si estamos configurados después de hacer clic en el botón, debería aparecer el fragmento, entonces tenemos que obtener ayuda del Administrador de fragmentos. Maneja todo el fragmento en una actividad. Necesitamos configurar la transacción de fragmentos con la ayuda del administrador de fragmentos y comenzar la transacción, y luego simplemente reemplazar el diseño del fragmento con el lugar deseado.

/* this code is contributed by rohansadhukhan9 */
Button B = findViewById(R.id.button);
B.setOnClickListener(new View.OnClickListener) {
    @Override
    public void onClick(View v) {
        fragment f = new fragment();
        FragmentTransaction t = getSupportFragmentManeger().beginTransaction();
        t.replace(R.id.fragment_layout, f).commit();
    }
}

Este artículo es una contribución de Saket Kumar . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *