当前位置: 首页 > 知识库问答 >
问题:

在片断内使用viewPager时在片断中崩溃

齐鹏程
2023-03-14
Fatal Exception: java.lang.IllegalStateException
Child FragmentManager of MovieFragmentBase{9fa4a22 #1 id=0x7f0a0468 MovieFragmentBase} was not destroyed and this fragment is not retaining instance
android.support.v4.app.Fragment.performDetach (Unknown Source)
android.support.v4.app.FragmentManagerImpl.moveToState (Unknown Source)
android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState (Unknown Source)
android.support.v4.app.BackStackRecord.executePopOps (Unknown Source)
android.support.v4.app.FragmentManagerImpl.executeOps (Unknown Source)
android.support.v4.app.FragmentManagerImpl.executeOpsTogether (Unknown Source)
android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute (Unknown Source)
android.support.v4.app.FragmentManagerImpl.execPendingActions (Unknown Source)
android.support.v4.app.FragmentManagerImpl$1.run (Unknown Source)
android.os.Handler.handleCallback (Handler.java:822)
android.os.Handler.dispatchMessage (Handler.java:104)
android.os.Looper.loop (Looper.java:207)
android.app.ActivityThread.main (ActivityThread.java:5736)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:910)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:771)

请检查我在MovieFragmentBase中使用的viewPagerAdapter的代码。

class ViewPagerAdapter extends FragmentStatePagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();

        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }

        @Override
        public Fragment getItem(int position) {
            return mFragmentList.get(position);
        }


        @Override
        public int getCount() {
            return mFragmentList.size();
        }

        public void addFragment(Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }


        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitleList.get(position);
        }


    }

共有1个答案

太叔高义
2023-03-14

尝试在MovieFragmentBaseoncreate()添加SetRetaInstance(true);可能会对您有所帮助

有关SetRetaInstance的详细信息,请参阅下面的链接

进一步了解SetRetaInstance(true)

 类似资料:
  • 我现在正在开发一个Android应用程序,它的主要活动扩展了FragmentActivity(支持库)。此活动包含ViewPager视图,其适配器为FragmentStatePagerAdapter。确切地说,适配器是一个自定义子类,它扩展了FragmentStatePagerAdapter。 适配器类有getItem()方法来返回片段实例。我将这些片段存储在SparseArray中,并不是为了在

  • 有没有什么好的方法来引用用创建的片段?或者我应该如何从我的活动(准确地说是从选项菜单)中刷新查看页中的片段?

  • 现在我有一个展示viewpager的活动,它包含三个片段。一切运转正常。在碎片中检测旋转 问题是片段没有使用setContentView(r.layout.main);这是代码: 我试着用:

  • 我想要一个选项卡布局,其中,在每个选项卡上有两个片段,一个在上面显示任务的进度,通过在3个选项卡中提供从开始到结束的输入来完成,和另一个在进度片段下面的主片段将接受输入。 我试了两天所有的方法:( 我的解决方案我尝试了一个包含两个framelayout的布局,用于将主片段添加到ViewPager的两个选项卡中,如下所示: 在活动开始时,我执行此操作,请参见在主片段中用于加载不同标签位置的详细片段的

  • 我有一个有4个选项卡的ViewPager片段,在第4个选项卡中有另一个有3个选项卡的ViewPager,这样,如果每当我切换我的topviewPagerTab(一个有4个选项卡)时,就不会调用sub ViewPager(有3个选项卡)中的setUserVisiblehint片段。

  • 我是android编程的新手。虽然我在Access上搜索了这个问题,但没有找到任何令人满意的解决方案: 问题是:我想动态地将一个图像设置为imageview--它位于一个片段中。 我想使用图像的文件名来完成这个操作。 但我得到了NullPointerException: java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“void android.widge