我的应用程序由4个作为选项卡加载在一个父Fragment中使用FragmentPagerAdapter
的片段组成。
问题是,当我运行应用程序并按返回键后重新打开应用程序时,我会收到这个错误日志:
FATAL EXCEPTION: main
java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Handler android.support.v4.app.FragmentHostCallback.getHandler()' on a null object reference
at android.support.v4.app.FragmentManagerImpl.ensureExecReady(FragmentManager.java:1949)
at android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:1965)
at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:620)
at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:143)
at android.support.v4.view.ViewPager.setAdapter(ViewPager.java:513)
...
父Fragment中的代码行为:
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);
同时ViewPage
和Adapter
都不为空!!
需要提到的是,我所有的Fragment
生命周期都已经被管理好了,但是空值问题却发生在适配器内部!当我使用Activity
作为父级而不是Fragment
时,同样的适配器可以正常工作!!!