关于Fragment的几个问题
这几天,在Fragment上出了些问题,简单地总结一下:
1、Fragment+ViewPager导致的onResume错位。
由于ViewPager的预加载,导致一些错乱。比如,我有A/B/C/D/E 五个Fragment在ViewPager里,从A切到B时,会执行C的onResume。也就是下一个Fragment的onResume方法。这不是我们预期的,在onResume里需要做的一些事情,放在onResume里,会导致一些超出预期的错乱。一个解决方法是setUserVisibleHint
方法。setUserVisibleHint
会在一个Fragment显示隐藏状态改变以后执行。需要注意的是,这个方法首次执行时间在onCreateView之前,View可能未初始化,会导致空指针问题。
2、Fragment里的Edittext问题。
我的情况是在一个activity里有N个Fragment,通过replace方式切换。当再次切换到同一个Fragment的时候,我发现上一次在Fragment内的EditText里输入的文字还存在,即使我在onCreateView的方法里重新初始化了EditText,也无济于事。参考博客: http://blog.csdn.net/xiehao_95/article/details/52625642
3、Fragment调用getActivity返回null的问题
Fragment在onAttach之后,调用getActivity才有值。当activity被回收,执行onDetach,Fragment里的网络回调调用getActivity返回null,导致空指针异常。 参考博客:http://www.ithao123.cn/content-10515183.html