Sobes.tech
Junior — Middle

¿Se puede estar seguro de que al cambiar la configuración se llamará exactamente al constructor del fragmento del usuario?

sobes.tech AI

Respuesta de la IA

No, no se puede estar seguro de que al cambiar la configuración se llame exactamente al constructor del fragmento por defecto.

En Android, el sistema puede volver a crear fragmentos usando el constructor sin parámetros (por defecto), especialmente al restaurar el estado después de un cambio de configuración (por ejemplo, rotación de pantalla).

Por lo tanto, se recomienda:

  • Usar el constructor por defecto sin parámetros.
  • Pasar parámetros a través de Bundle usando el método setArguments().
  • Extraer los parámetros en el método onCreate() o onCreateView() desde getArguments().

Esto garantiza una restauración correcta del estado del fragmento por parte del sistema.

Ejemplo:

class MyFragment : Fragment() {
    companion object {
        fun newInstance(param: String): MyFragment {
            val fragment = MyFragment()
            val args = Bundle()
            args.putString("param_key", param)
            fragment.arguments = args
            return fragment
        }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val param = arguments?.getString("param_key")
        // Usar param
    }
}