¿Cuáles son las diferencias entre onCreate()
, onCreateView()
y onActivityCreated()
en fragmentos y para qué se utilizarían?
¿Cuáles son las diferencias entre onCreate()
, onCreateView()
y onActivityCreated()
en fragmentos y para qué se utilizarían?
Respuestas:
onCreate ():
El onCreate()
método en a Fragment
se llama después de Activity
'sonAttachFragment()
pero antes de eso Fragment
' s onCreateView()
.
En este método, puede asignar variables, obtener Intent
extras y cualquier otra cosa que no implique la jerarquía de Vista (es decir, inicializaciones no gráficas). Esto se debe a que se puede llamar a este método cuando el Activity
's onCreate()
no está terminado, por lo que intentar acceder a la jerarquía de Vista aquí puede provocar un bloqueo.
onCreateView ():
Después de que onCreate()
se llama a (en el Fragment
), se llama a Fragment
's onCreateView()
. Puede asignar sus View
variables y hacer cualquier inicialización gráfica . Se espera que devuelva un View
de este método, y esta es la vista principal de la interfaz de usuario, pero si Fragment
no utiliza ningún diseño o gráfico, puede regresar null
(sucede de forma predeterminada si no anula).
onActivityCreated ():
Como su nombre lo indica, se llama después de que el Activity
's se onCreate()
haya completado . Se llama después onCreateView()
y se usa principalmente para las inicializaciones finales (por ejemplo, modificación de elementos de la interfaz de usuario).
Para resumir ...
... todos se llaman en el Fragment
pero se llaman en diferentes momentos.
El onCreate()
se llama en primer lugar, para hacer ningún inicializaciones no gráficas. A continuación, puede asignar y declarar cualquier View
variable que desee usar onCreateView()
. Luego, use onActivityCreated()
para hacer cualquier inicialización final que desee hacer una vez que todo se haya completado.
Si desea ver la documentación oficial de Android, puede encontrarla aquí:
-
-
-onCreate()
onCreateView()
onActivityCreated()
También hay algunas preguntas / respuestas ligeramente diferentes, pero menos desarrolladas aquí en Stack Overflow:
onCreateView
.
Para cualquiera que busque una respuesta concisa y pictórica:
https://hanaskuliah.wordpress.com/2015/12/07/android-5-development-part-6-fragment/
Y,
onActivityCreated()
ahora está en desuso como Fragments Version 1.3.0-alpha02
El método onActivityCreated () ahora está en desuso. El código que toca la vista del fragmento debe hacerse en onViewCreated () (que se llama inmediatamente antes de onActivityCreated ()) y otro código de inicialización debe estar en onCreate (). Para recibir una devolución de llamada específicamente cuando se completa onCreate () de la actividad, se debe registrar un LifeCycleObserver en el Ciclo de vida de la actividad en onAttach (), y eliminarlo una vez que se recibe la devolución de llamada onCreate ().
La información detallada se puede encontrar aquí