现在Fragment结合Viewpager实现的多页切换效果很是流行。
有些同学在开发过程中,尤其是刚开始接触的时候,可能会遇到这样的问题:
几个fragment来回切换,fragment里面包含的listview不显示了。
究其原因目前遇到两个:
1,在FragmentPagerAdapter里不明缘由的重载了方法
public Object instantiateItem(ViewGroup container, int position);
根据官方解释
意思是在指定position的位置创建新的page,具体的使用和解释可以参考
http://blog.csdn.net/dyllove98/article/details/8806576
2,Fragment的生命周期相关
Fragment的生命周期跟activity的有些类似,大致的生命周期如下:
onCreate
onCreateView
onStart
onResume
onPause
onStop
onDestroyView
onDestroy
通过viewPager来控制多个Fragment的时候,在fragment切换的时候,会择机删除不可见的fragment中对应的view,这时该fragment会依次响应onPause,onStop,onDestroyView,等到需要显示的时候会依次响应onCreateView,onStart,onResume,所以若是fragment包含有listview之类的控件,需要确认一下在onCreateView的时候,listview是否跟adapter绑定。