方法一、public void setUserVisibleHint(boolean isVisibleToUser); //这里会判断当前Fragment是否以显示测试
方法二、public void onResume(); //这里开始显示Fragment
spa
有时候须要在Fragment真正显示出来的时候在加载数据,例如和ViewPager组合使用时,ViewPager会预先加载上下一个Fragment,此时上下Fragment的onResume()方法就会被调用,刚好这并不是指望发生的,全部setUserVisibleHint(boolean isVisibleToUser)会是个更好的选择。事务
相信这两个PagerAdapter的子类,你们都不陌生吧~~自从Fragment问世,使用ViewPager再结合上面任何一个实例的制做APP主页的案例特别多~~~内存
那么这两个类有何区别呢?it
主要区别就在与对于fragment是否销毁,下面细说:fragment
FragmentPagerAdapter:对于再也不须要的fragment,选择调用detach方法,仅销毁视图,并不会销毁fragment实例。方法
FragmentStatePagerAdapter:会销毁再也不须要的fragment,当当前事务提交之后,会完全的将fragmeng从当前 Activity的FragmentManager中移除,state标明,销毁时,会将其onSaveInstanceState(Bundle outState)中的bundle信息保存下来,当用户切换回来,能够经过该bundle恢复生成新的fragment,也就是说,你能够在 onSaveInstanceState(Bundle outState)方法中保存一些数据,在onCreate中进行恢复建立。数据
如上所说,使用FragmentStatePagerAdapter固然更省内存,可是销毁新建也是须要时间的。通常状况下,若是你是制做主页面, 就三、4个Tab,那么能够选择使用FragmentPagerAdapter,若是你是用于ViewPager展现数量特别多的条目时,那么建议使用 FragmentStatePagerAdapter。时间
篇幅缘由,具体的案例就不写了,你们自行测试。vi