ViewPager:recursion进入executePendingTransactions

我有ViewPager中的ViewPager,我得到这个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是不可能的? 是的,我知道还有其他的方法可以做到这一点,但我想要免费的捕捉和滚动。 另外我想了解它是如何工作的。

最近我遇到了同样的问题,经过一番调查,我惊讶地发现,你根本无法将一个片段embedded到另一个片段中。 这里你正在执行另一个片段事务。 这是不允许的。

新版本的Support Library v4(或者当然是Android 4.2)解决了这个问题。 请参阅下面的答案。

更新 getChildFragmentManager ()添加到解决上述问题。

新版本的Support Library v4 (或Android 4.2,当然)可以简单地解决这个问题。 为了做到这一点,只需要像这样做自定义FragmentPagerAdapter的构造函数:

 public CustomFragmentPagerAdapter(android.support.v4.app.Fragment fragment) { super(fragment.getChildFragmentManager()); // write your code here } 

这项工作,因为新的Android版本批准使用嵌套片段

参考这个。 在片段中显示片段viewpager

它可以完成,但通过一个Asysnc完成,因为您必须先完成第一个碎片事务。 片段内可以有片段。 我知道,因为我有几个项目在做。