AndroidRuntime: FATAL EXCEPTION: main
Process: com.yizooo.yizooo, PID: 21870
java.lang.IllegalStateException: No host
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1235)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1230)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:2042)
at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1976)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1092)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)
at android.os.Handler.handleCallback(Handler.java:743)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:5546)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:684)
10-21 18:25:32.393 27110-27110/com.yizooo.yizooo E/SMACK-Voe: enter JNI_OnLoad
截图:
出现这个bug的原因是将touch事件和onKey事件传递给了Fragment,而这个时候Fragment还在动画状态中,“No host”,没有附着到Activity上面。因此,解决方法就是在Fragment切换动画时候,标识下这个状态,在这个状态下,Activity的touch事件和onKey事件自己处理即可。参考:http://blog.csdn.net/singleton1900/article/details/49490779
你试试TabLayout吧
除了楼上说的,No host 代表Fragment还没有 附着在Activity上,应该是你的一些初始化代码没有在 Fragment的生命周期 onAttach之后做。你检查一下这方面的原因