android 返回 到FragmentTabHost 某一个tab时报错

来源:互联网 发布:防晒霜推荐 知乎 编辑:程序博客网 时间:2024/05/22 17:30

现象:

工程 SlidiMenu+fragment!在fragment里我用到了FragmentTabHost,当我用fragment切换的时候,返回到带有FragmentTabHost页面的时候,报错了(见下图)



04-30 13:36:17.289: E/AndroidRuntime(14828): FATAL EXCEPTION: main04-30 13:36:17.289: E/AndroidRuntime(14828): java.lang.IllegalStateException: Recursive entry to executePendingTransactions04-30 13:36:17.289: E/AndroidRuntime(14828): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1439)04-30 13:36:17.289: E/AndroidRuntime(14828): at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)04-30 13:36:17.289: E/AndroidRuntime(14828): at android.support.v4.app.FragmentTabHost.onAttachedToWindow(FragmentTabHost.java:283)04-30 13:36:17.289: E/AndroidRuntime(14828): at android.view.View.dispatchAttachedToWindow(View.java:6165)04-30 13:36:17.289: E/AndroidRuntime(14828): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1122)04-30 13:36:17.289: E/AndroidRuntime(14828): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1127)04-30 13:36:17.289: E/AndroidRuntime(14828): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1127)04-30 13:36:17.289: E/AndroidRuntime(14828): at android.view.ViewGroup.addViewInner(ViewGroup.java:2011)04-30 13:36:17.289: E/AndroidRuntime(14828): at android.view.ViewGroup.addView(ViewGroup.java:1871)04-30 13:36:17.289: E/AndroidRuntime(14828): at android.view.ViewGroup.addView(ViewGroup.java:1828)04-30 13:36:17.289: E/AndroidRuntime(14828): at android.view.ViewGroup.addView(ViewGroup.java:1808)04-30 13:36:17.289: E/AndroidRuntime(14828): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:938)04-30 13:36:17.289: E/AndroidRuntime(14828): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)04-30 13:36:17.289: E/AndroidRuntime(14828): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)04-30 13:36:17.289: E/AndroidRuntime(14828): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)04-30 13:36:17.289: E/AndroidRuntime(14828): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)04-30 13:36:17.289: E/AndroidRuntime(14828): at android.os.Handler.handleCallback(Handler.java:587)04-30 13:36:17.289: E/AndroidRuntime(14828): at android.os.Handler.dispatchMessage(Handler.java:92)04-30 13:36:17.289: E/AndroidRuntime(14828): at android.os.Looper.loop(Looper.java:130)04-30 13:36:17.289: E/AndroidRuntime(14828): at android.app.ActivityThread.main(ActivityThread.java:3683)04-30 13:36:17.289: E/AndroidRuntime(14828): at java.lang.reflect.Method.invokeNative(Native Method)04-30 13:36:17.289: E/AndroidRuntime(14828): at java.lang.reflect.Method.invoke(Method.java:507)04-30 13:36:17.289: E/AndroidRuntime(14828): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
代码,见下图


mTabHost = (FragmentTabHost) view.findViewById(android.R.id.tabhost);mTabHost.setup(ma.getApplicationContext(), ma.getSupportFragmentManager(),R.id.realtabcontent);

解决办法:
mTabHost = (FragmentTabHost) view.findViewById(android.R.id.tabhost);mTabHost.setup(ma.getApplicationContext(),getChildFragmentManager(),R.id.realtabcontent);
setup的时候,加载的是child



0 0