ViewPager:递归进入executePendingTransactions [英] ViewPager: Recursive entry to executePendingTransactions
问题描述
我有一个ViewPager内ViewPager和我收到此异常
I have a ViewPager within a ViewPager and I am getting this exception
09-07 18:30:26.392: ERROR/AndroidRuntime(841): FATAL EXCEPTION: main
java.lang.IllegalStateException: Recursive entry to executePendingTransactions
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1331)
at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:422)
at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:86)
at android.support.v4.view.ViewPager.populate(ViewPager.java:453)
at android.support.v4.view.ViewPager.onAttachedToWindow(ViewPager.java:563)
at android.view.View.dispatchAttachedToWindow(View.java:7974)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1857)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1862)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1862)
at android.view.ViewGroup.addViewInner(ViewGroup.java:2968)
at android.view.ViewGroup.addView(ViewGroup.java:2824)
at android.support.v4.view.ViewPager.addView(ViewPager.java:537)
at android.view.ViewGroup.addView(ViewGroup.java:2781)
at android.view.ViewGroup.addView(ViewGroup.java:2761)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:848)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1041)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:616)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1359)
at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:422)
at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:86)
at android.support.v4.view.ViewPager.populate(ViewPager.java:453)
at android.support.v4.view.ViewPager.onAttachedToWindow(ViewPager.java:563)
at android.view.View.dispatchAttachedToWindow(View.java:7974)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1857)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1862)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1862)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1862)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1862)
at android.view.ViewRoot.performTraversals(ViewRoot.java:726)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1944)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:126)
at android.app.ActivityThread.main(ActivityThread.java:3997)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
at dalvik.system.NativeStart.main(Native Method)
我真的不知道在哪里这个错误来自于,我不知道太多的FragmentManager。我是否需要刷新的交易或者类似的东西?或者是ViewPager内viewPager不可能?是的,我知道有其他方法可以做到这一点,但我想snappness和滚动是免费的。此外,我想了解它是如何工作的。
I am not really sure where this error comes from and I don't know too much about the FragmentManager. Do I need to flush the transactions or something like that? Or is a viewPager within a ViewPager impossible? And yes I know there are other ways to do this but I want the snappness and the scrolling for free. Also I would like to understand how it actually works.
推荐答案
最近我遇到了同样的问题,经过一个小调查我很惊讶地发现,你根本无法嵌入一个片段到另一国。在这里,您将在另外一个执行的一个片段的交易。这只是不允许的。
Recently I encountered the same problem and after a little investigation I was surprised to discover that you simply can't embed one fragment into another. Here you are executing one fragment transaction in another one. It's just not allowed.
的支持库V4(或Android 4.2,当然)新版本解决了这个问题。请参阅下面的答案。
New version of Support Library v4 (or Android 4.2, of course) resolves this problem. See the answer below.
更新
getChildFragmentManager()
添加,以解决上述问题。
Update
getChildFragmentManager ()
added to tackle the above mentioned issue.
这篇关于ViewPager:递归进入executePendingTransactions的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!