zoukankan      html  css  js  c++  java
  • Android Fragment碎片

    当Fragment在显示时

    方法1、public void setUserVisibleHint(boolean isVisibleToUser); //这里会判断当前Fragment是否以显示

    方法2、public void onResume(); //这里开始显示Fragment

    有时候需要在Fragment真正显示出来的时候在加载数据,例如和ViewPager组合使用时,ViewPager会预先加载上下一个Fragment,此时上下Fragment的onResume()方法就会被调用,恰好这并非期望发生的,所有setUserVisibleHint(boolean isVisibleToUser)会是个更好的选择。

    FragmentPagerAdapter与FragmentStatePagerAdapter

    相信这两个PagerAdapter的子类,大家都不陌生吧~~自从Fragment问世,使用ViewPager再结合上面任何一个实例的制作APP主页的案例特别多~~~

    那么这两个类有何区别呢?

    主要区别就在与对于fragment是否销毁,下面细说:

    FragmentPagerAdapter:对于不再需要的fragment,选择调用detach方法,仅销毁视图,并不会销毁fragment实例。

    FragmentStatePagerAdapter:会销毁不再需要的fragment,当当前事务提交以后,会彻底的将fragmeng从当前 Activity的FragmentManager中移除,state标明,销毁时,会将其onSaveInstanceState(Bundle outState)中的bundle信息保存下来,当用户切换回来,可以通过该bundle恢复生成新的fragment,也就是说,你可以在 onSaveInstanceState(Bundle outState)方法中保存一些数据,在onCreate中进行恢复创建。

    如上所说,使用FragmentStatePagerAdapter当然更省内存,但是销毁新建也是需要时间的。一般情况下,如果你是制作主页面, 就3、4个Tab,那么可以选择使用FragmentPagerAdapter,如果你是用于ViewPager展示数量特别多的条目时,那么建议使用 FragmentStatePagerAdapter。

    篇幅原因,具体的案例就不写了,大家自行测试。

  • 相关阅读:
    第七周java学习总结
    第六周java学习总结
    20175206迭代与JDB测试
    第五周java学习总结
    实验一 Java开发环境的熟悉(Linux + Eclipse)
    第四周java学习总结
    第三周java学习总结
    es6零基础学习之项目目录创建(一)
    软键盘影响页面布局之定位
    当input的框全部不为空时,提交按钮变色
  • 原文地址:https://www.cnblogs.com/rfheh/p/4409961.html
Copyright © 2011-2022 走看看