without viewpager studio fragments example android android-layout android-fragments android-viewpager

android - viewpager - FragmentManager IllegalStateException: Sin host



viewpager android github (3)

ACTUALIZACIÓN : Los bloqueos desaparecieron cuando puse nullcheks (fragment! = Null, getActivity ()! = Null) donde pueda.

Mi aplicación está utilizando ViewPager (límite de pantalla 5) con FragmentStatePagerAdapter inicializado con getSupportFragmentManager () . Cada página tiene sus propios fragmentos y backstack.

La aplicación se bloquea en el inicio. El problema ocurre solo en los dispositivos preLollipop y en el emulador. Usando el último soporte lbrary (también probado 24.0.0 - mismo resultado) Stacktrace:

java.lang.IllegalStateException: No host en android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1273) en android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1268) en android.support.up. .v4.app.FragmentManagerImpl.dispatchCreate (FragmentManager.java:2138) en android.support.v4.app.Fragment.onCreate (Fragment.java:1254) en android.support.v4.app.Fragment.performCreate (Fragment.java : 2062) en android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1051) en android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1286) en android.support.v4.app. BackStackRecord.run (BackStackRecord.java:758) en android.support.v4.app.FragmentManagerImpl.execSingleAction (FragmentManager.java:1632) en android.support.v4.app.BackStackRecord.commitNowAllowingestallowest. .support.v4.app.FragmentStatePagerAdapter.finishUpdate (FragmentStatePagerAdapter.java:166) en android.support.v4.view.ViewPager.pop ulate (ViewPager.java:1237) en android.support.v4.view.ViewPager.populate (ViewPager.java:1085) en android.support.v4.view.ViewPager.onMeasure (ViewPager.java:1611) en android.view .View.measure (View.java:16497) en android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5125) en android.widget.LinearLayout.measureChildBp.P.P.P.P.P. LinearLayout.java:695) en android.widget.LinearLayout.onMeasure (LinearLayout.java:588) en android.view.View.measure (View.java:16497) en android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:555 ) en android.widget.FrameLayout.onMeasure (FrameLayout.java:310) en android.view.View.measure (View.java:16497) en android.widget.RelativeLayout.measureChildHorizontal (RelativeLayout.java:719) en yroid. .RelativeLayout.onMeasure (RelativeLayout.java:455) en android.view.View.measure (View.java:16497) en android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5125) en android.widge t.FrameLayout.onMeasure (FrameLayout.java:310) en android.support.v7.widget.ContentFrameLayout.onMeasure (ContentFrameLayout.java:135) en android.view.View.measure (View.java:16497) en android.view .ViewGroup.measureChildWithMargins (ViewGroup.java:5125) en android.widget.FrameLayout.onMeasure (FrameLayout.java:310) en android.view.View.View.measure (View.java:16497) en android.view.ViewGroup.measureChitch ViewGroup.java:5125) en android.widget.FrameLayout.onMeasure (FrameLayout.java:310) en android.view.View.measure (View.java:16497) en android.view.ViewGroup.measure (ViewGroup.java:5125 ) en android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:1404) en android.widget.LinearLayout.measureVertical (LinearLayout.p.Informaciones de animales / animales / animales / animales / animales / animales / animales / animales / animales / animales / animales / animales / animales / animales / animales / animal / animal / mujer / niño / a). .View.measure (View.java:16497) en android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5125) en android.widget.FrameLayout.onMeasure (FrameLayout.java:310) at com.android.internal.policy.impl.PhoneWindow $ DecorView.onMeasure (PhoneWindow.java:2291) en android.view.View.measure (View.java:16497) en android.view.ViewRootImpl.performMeasure (ViewRootImpl.java : 1912) en android.view.ViewRootImpl.measureHierarchy (ViewRootImpl.java:1109) en android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:1291) en android.view.ViewRootImpl.doTraversal (ViewRootImpl.java.6) .view.ViewRootImpl $ TraversalRunnable.run (ViewRootImpl.java:5600) en android.view.Choreographer $ CallbackRecord.run (Choreographer.java:761) en android.view.Choreographer.doCallbacks (Choreographer.java:574). view.Choreographer.doFrame (Choreographer.java:544) en android.view.Choreographer $ FrameDisplayEventReceiver.run (Choreographer.java:747) en android.os.Handler.handleCallback (Handler.java:733) en android.os.Handler .dispatchMessage (Handler.java:95) en android.os.Looper.loop (Looper.java:136)


Cuando esté utilizando viewPager, asegúrese de seguir estas prácticas

  1. Llama super (fragmentManager) en tu constructor
  2. Si está utilizando Viewpager dentro de un Fragmento, pase getChildFragmentManager a Adaptador

En mi caso, estoy usando viewpager dentro del fragmento y estaba usando getChildFragmentManager() al configurar el adaptador de viewpager. También se recomienda usar este supongo.

También hay un problema, java.lang.IllegalStateException: No host se mostraba una excepción de java.lang.IllegalStateException: No host cada vez, pero se mostraba con demasiada frecuencia cuando llamaba a un método de viewpager que contenía Activity o regresaba de otra clase de Activity antes de configurar viewpager.setCurrentItem(POSITION);

Lo intenté de muchas maneras y finalmente cambié getChildFragmentManager() por getActivity().getSupportFragmentManager();

Después de cambiar esta excepción java.lang.IllegalStateException: No host ya no se muestra ninguna excepción de java.lang.IllegalStateException: No host .

Creo que está relacionado con el problema de estado de actividad que contiene viewpager.


Si ha anidado Fragmento (amplía FragmentActivity), use getChildFragmentManager () en lugar de getFragmentManager ().

puede ser que te ayude ..