gpt4 book ai didi

安卓ViewPager : Recursive entry to executePendingTransactions with no nested fragments

转载 作者:行者123 更新时间:2023-11-29 01:41:45 25 4
gpt4 key购买 nike

我在我的应用程序上使用 ViewPager,它工作正常,只是显示最后一个 fragment 。当显示该 fragment 时,我收到以下错误:

java.lang.IllegalStateException: Recursive entry to executePendingTransactions
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1388)
at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:431)
at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:139)
at android.support.v4.view.ViewPager.populate(ViewPager.java:804)
at android.support.v4.view.ViewPager.completeScroll(ViewPager.java:1280)
at android.support.v4.view.ViewPager.computeScroll(ViewPager.java:1176)
at android.view.View.getDisplayList(View.java:14182)
at android.view.View.getDisplayList(View.java:14239)
at android.view.View.draw(View.java:15017)
at android.view.ViewGroup.drawChild(ViewGroup.java:3298)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3135)
at android.view.View.getDisplayList(View.java:14192)
at android.view.View.getDisplayList(View.java:14239)
at android.view.View.draw(View.java:15017)
at android.view.ViewGroup.drawChild(ViewGroup.java:3298)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3135)
at android.view.View.draw(View.java:15306)
at android.widget.FrameLayout.draw(FrameLayout.java:472)
at android.view.View.getDisplayList(View.java:14197)
at android.view.View.getDisplayList(View.java:14239)
at android.view.View.draw(View.java:15017)
at android.view.ViewGroup.drawChild(ViewGroup.java:3298)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3135)
at android.view.View.getDisplayList(View.java:14192)
at android.view.View.getDisplayList(View.java:14239)
at android.view.View.draw(View.java:15017)
at android.view.ViewGroup.drawChild(ViewGroup.java:3298)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3135)
at android.view.View.draw(View.java:15306)
at android.widget.FrameLayout.draw(FrameLayout.java:472)
at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2568)
at android.view.View.getDisplayList(View.java:14197)
at android.view.View.getDisplayList(View.java:14239)
at android.view.HardwareRenderer$GlRenderer.buildDisplayList(HardwareRenderer.java:1570)
at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1449)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2705)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2571)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2143)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1234)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6467)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:803)
at android.view.Choreographer.doCallbacks(Choreographer.java:603)
at android.view.Choreographer.doFrame(Choreographer.java:573)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:789)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5356)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
at dalvik.system.NativeStart.main(Native Method)

阅读几个 stackoverflow 问题,最常见的原因是有嵌套的 fragment 。但是,这不是我的情况,我的 fragment 都不包含子 fragment 。为了填充 ViewPager,我使用了 PageAdapter,如下所示:

    // step 1: create the fragment list
List<Fragment> fragments = new Vector<Fragment>();
// wt1
WalkthroughFragment fragment = new WalkthroughFragment_();
fragment.setImageBottomId(R.drawable.wt1);
fragment.setTextId(R.string.walkthrough_1);
fragment.setButtonId(R.string.walkthrough_skip);
fragments.add(fragment);
// wt2
fragment = new WalkthroughFragment_();
fragment.setImageBottomId(R.drawable.wt2);
fragment.setTextId(R.string.walkthrough_2);
fragments.add(fragment);
// login
LoginSocialFragment social = new LoginSocialFragment_();
fragments.add(social);

// step 2: create the adapter for the view pager
this.pager.setAdapter(new MyPageAdapter(getSupportFragmentManager(), fragments));
// step 3: set the default item as the first one
//TODO: use preferences to see whether should be the last one
this.pager.setCurrentItem(0);
//step 4: bind the pager to the indicator
this.indicator.setViewPager(this.pager);
this.indicator.notifyDataSetChanged();

然后我不会在代码的任何其他部分使用这些 fragment ,也不会再次添加它们。有什么想法吗?

最佳答案

最终是最后一个 fragment 的问题。当 ViewPager 加载该 fragment 时,由于缺少 jar,它抛出了 ClassDefNotFound 异常。然后,由于我正在重新加载 Activity ,该 fragment 再次被实例化并且未能抛出我在帖子中提出的异常。因此,“executePendingTransactions 的递归条目”异常并不总是与嵌套 fragment 有关。只是想让你知道:)

关于安卓ViewPager : Recursive entry to executePendingTransactions with no nested fragments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24146165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com