Diferencia entre onCreateView y onViewCreated en Fragment

¿Cuál es la diferencia esencial entre estos dos métodos? Cuando creo un TextView, ¿debo usar uno sobre el otro para el rendimiento?

Editar: ¿Cuál es la diferencia de

onCreateView() { root = some view View v = new View(some context); root.add(v); return root; } onViewCreated() { View v = new View(some context); getView().add(v); } 

onViewCreated se llama inmediatamente después de onCreateView (el método que inicializa y crea todos sus objetos, incluido su TextView ), por lo que no se trata de rendimiento.

Desde el sitio del desarrollador:

onViewCreated (Ver vista, Bundle savedInstanceState)

Se invoca inmediatamente después de que onCreateView (LayoutInflater, ViewGroup, Bundle) haya regresado, pero antes de que se haya restaurado cualquier estado guardado en la vista. Esto les da a las subclases la oportunidad de inicializarse una vez que saben que su jerarquía de vistas ha sido completamente creada. Sin embargo, la jerarquía de vistas del fragmento no está asociada a su elemento principal en este punto.

Nos enfrentamos a algunos lockings al inicializar la vista en onCreateView .

Debe inflar su diseño en onCreateView pero no debe inicializar otras vistas utilizando findViewById en onCreateView .

Porque a veces la vista no se inicializa correctamente. Por lo tanto, siempre use findViewById en onViewCreated (cuando la vista está completamente creada) y también pasa la vista como parámetro.

onViewCreated es una asegúrese de que la vista esté completamente creada.

Es mejor hacer cualquier asignación de subvistas a los campos en onViewCreated . Esto se debe a que el marco realiza una comprobación automática nula para garantizar que la jerarquía de vistas de Fragment se haya creado e inflado (si se usa un archivo de diseño XML) correctamente.

Fragmento de código de: FragmentManger.java

 // This calls onCreateView() f.mView = f.performCreateView(f.getLayoutInflater(f.mSavedFragmentState), null, f.mSavedFragmentState); // Null check avoids possible NPEs in onViewCreated // It's also safe to call getView() during or after onViewCreated() if (f.mView != null) { f.mView.setSaveFromParentEnabled(false); if (f.mHidden) f.mView.setVisibility(View.GONE); f.onViewCreated(f.mView, f.mSavedFragmentState); } 

onCreateView devuelve la vista inflada. OnViewCreated se llama justo después de onCreateView y get tiene el parámetro de la vista inflada. Su tipo de devolución es void