Diferencia entre onCreateView y onViewCreated en Fragmento

¿Cuál es la diferencia esencial entre estos dos métodos? Cuando creo un TextView, ¿debo utilizar 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, incluyendo su TextView ), por lo que no es una cuestión de rendimiento.

Desde el sitio de desarrollo:

OnViewCreated (vista de vista, Bundle savedInstanceState)

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

Es mejor hacer cualquier asignación de subviews a los campos en onViewCreated . Esto se debe a que el marco realiza una comprobación nula automática para asegurarse de que la jerarquía de vista de su fragmento se ha creado e inflado (si utiliza 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

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

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

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

onViewCreated es un asegúrese de que la vista está completamente creada.

onCreateView() es el equivalente de fragmento de onCreate() para Actividades y se ejecuta durante la creación de vista.
onViewCreated() ejecuta después de que se haya creado la vista.

should I use one over the other for performance? NO . No hay evidencia de un aumento de rendimiento.

En realidad, hay un método onCreate() en Framents, también.

Pero rara vez se utiliza ( nunca lo uso, ni encontrar un buen caso de uso para ello).
Siempre uso onCreateView() en Fragments como un reemplazo para onCreate() .
Y estoy feliz con eso.

OnCreateView se utiliza en el fragmento para crear el diseño e inflar la vista. OnViewCreated se utiliza para hacer referencia a la vista creada por el método anterior. Por último, es una buena práctica definir el oyente de acción en onActivityCreated.

La razón principal por la que usaría onViewCreated es que separa cualquier lógica de inicialización de la lógica de creación / inflación de jerarquía de vista que debería ir en el onViewCreate . Todas las demás características de rendimiento tienen el mismo aspecto.

  • Cómo establecer el color de borde para EditText para error de validación
  • Excepción: fragmento ya activo
  • Detectar si TextView abarca más de 2 líneas
  • <include> atributo de sustitución de etiqueta
  • El teclado oculta la barra de acción mientras usa adjustPan
  • Aclaración sobre la propiedad de clipToPadding de Android
  • Cómo crear Android La vista de cuadrícula de Google Play como Widget con imágenes de diferentes tamaños cargadas dinámicamente
  • Android: ¿Cómo obtener el botón de flecha?
  • RecyclerView oculta la barra de acción cuando se abre SoftKeyboard
  • Layout duplicando a sí mismo en la rotación de la pantalla
  • Estilo personalizado listdivider
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.