最近在一个项目中,碰到这样一个闪退bug:
Caused by: java.lang.IllegalStateException: FragmentManager is already executing transactions
第一次进入程序时不会发生错误,但是当你按下手机home键,或者其他方式离开当前app界面再进入吗,就会发生这个bug
其实原因很简单,就是我多次调用了context.getSupportFragmentManager()这个方法,
我查阅了一些资料,原因是第一次getFragmentManager()获取到的FragmentManager,只提供给activity那一层使用。
在viewPager那一层只能使用getChildFragmentManager()获取FragmentManager来处理子fragment。
所以只要将后面的context.getSupportFragmentManager()改成getChildFragmentManager()就行