示例一: ft.commit()和ft.commitAllowingStateLoss()的坑。
报错:Can not perform this action after onSaveInstanceState
FragmentTransaction ft = mFragmentManager.beginTransaction();
ft.commit();
当执行ft.commit();执行出错的时候,android给出另外一个方法来避免出错,避免奔溃。
其实这样的解决方案只是把错误和问题掩盖,实质上解决不了任何问题。
实例二:if(isAdd())
问题的状态就是:当调用getResource().getString(R.string.XX)的时候开始报错
加上这个if(isAdd())之后就避免奔溃,强制退出的情况,
实际上解决不了任何问题,原本想显示的文字,想显示的内容就没有显示,到如今都不知道如何才能解决这个问题,想想android的坑远不止这些,目前我无力解决,只能换别的方法来实现我想做的功能。
示例三:getChildFragment()的bug,取fragments中的元素会出现null的情况
public void onDetach() {
super.onDetach();
try {
Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager");
childFragmentManager.setAccessible(true);
childFragmentManager.set(this, null);
} catch (NoSuchFieldException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
还有viewpager+Fragment的问题,等等。。。