Cómo saber si un fragmento ya se llama onCreateView ()

Todos sabemos que cuando se usa ViewPager con Fragment y FragmentPagerAdapter tenemos 3 Fragment cargados: el visible, y ambos en cada uno de sus lados.

Por lo tanto, si tengo 7 Fragments y estoy iterando a través de ellos para ver qué 3 de ellos son los que se cargan, y por lo que me refiero onCreateView() ya ha sido llamado, ¿cómo puedo determinar esto?

EDIT: El Fragment no tiene que ser el que está mostrando ViewPager , sólo que onCreateView() ya ha sido llamado.

Bueno, lógicamente, esto sería una prueba razonable si se ha llamado onCreateView:

 myFragment.getView() != null; 

Suponiendo que tiene una referencia a todos los fragmentos en el buscapersonas iterar, ellos y comprobar si tienen una vista.

http://developer.android.com/reference/android/app/Fragment.html#getView ()

Actualizar

La respuesta anterior supone que sus fragmentos siempre crean una vista y no son fragmentos sin vista. Si son entonces sugiero que subgrupo el fragmento así:

 public abstract class SubFragment extends Fragment { protected boolean onCreateViewCalled = false; public boolean hasOnCreateViewBeenCalled() { return onCreateView; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup Container, Bundle state){ onCreateViewCalled = true; return null; } } 

Sólo tenga en cuenta que otras subclases tendrán que llamar a super o establecer la bandera si deberían anular onCreateView también.

He añadido una interfaz a Fragment. Parece:

 protected OnCreateViewCallback createViewCallback = null; public void setCreateViewCallback(OnCreateViewCallback createViewCallback) { this.createViewCallback = createViewCallback; } public interface OnCreateViewCallback { void onCreateView(); } 

En mi onCreateView ():

  //initialize your view. if (createViewCallback != null) { createViewCallback.onCreateView(); createViewCallback = null; } return mainView; 

De mi actividad:

  if (ocrFragment.getView() == null) { ocrFragment.setCreateViewCallback(new MainScreenFragment.OnCreateViewCallback() { @Override public void onCreateView() { ocrFragment.ocrImage(picture, false); } }); } else { ocrFragment.ocrImage(picture, false); } 

También puede comprobar Fragment.isVisible() porque un fragmento está en estado visible cuando se encuentra en el límite de página fuera de pantalla de un ViewPager.

Edit: Pero realmente depende de lo que realmente quieres lograr con tu pregunta. Tal vez algún tipo de actualización a todas las interfaces de usuario en sus fragmentos cuando su interfaz de usuario está listo?

EDITAR:

Sólo otra adición, usted podría escuchar onViewCreated() y establecer un indicador. O notifique su Actividad y haga más trabajo ( getActivity() devolverá su Actividad en este momento). Pero realmente, mejor estado lo que desea lograr con su pregunta.

  • Sincronizar la posición de desplazamiento de ScrollView en todos los fragmentos dentro de ViewPager
  • NestedScrollview + TextView + RecyclerView
  • A veces el fragmento pierde actividad
  • Reemplazar fragmento dentro de un ViewPager
  • Mostrar DialogFragment de onActivityResult
  • Android: añadir fragmento con dimensiones personalizadas
  • Cómo instalar la última versión de ADT plug-in para eclipse
  • FragmentPagerAdapter sólo existe en Android.Support.V4.App (y no en Android.App)
  • Seleccione la imagen de la galería en Android Fragment
  • ¿Hay un patrón de diseño de Android para manejar múltiples fragmentos en una sola actividad?
  • El más correctamente para guardar el estado de RecyclerView?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.