【问题标题】:Crash in Fragment when using viewPager inside Fragment在 Fragment 中使用 viewPager 时在 Fragment 中崩溃
【发布时间】:2018-07-11 07:31:36
【问题描述】:

我在 Fragment 中使用 ViewPager。我在 Crashlytics 中收到以下崩溃报告。请帮忙解决这个问题

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);
        }


    }

【问题讨论】:

  • 你能把你的ViewPagerAdapter代码贴在这里吗?
  • @dr3k 我在我的问题中添加了 viewPagerAdapter 代码。请检查已编辑的问题。谢谢

标签: android android-fragments exception android-viewpager


【解决方案1】:

尝试在onCreate() 或MovieFragmentBase 中添加setRetainInstance(true);,可能会对您有所帮助

有关setRetainInstance的更多信息,请点击以下链接

Further understanding setRetainInstance(true)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多