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。

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

  • 相关阅读:
    面向对象
    6.jQuery基础_试题
    5.JavaScript操作BOM、DOM对象_试题
    css疑问
    JAVA学习笔记_五JAVA开发中的WEB前端技术
    java学习笔记_mysql随堂考试_错题
    java学习笔记④MySql数据库--03/04 DQL查询
    java学习笔记④MySql数据库--01/02 database table 数据的增删改
    java学习笔记③JAVA核心API编程-01集合框架和泛型
    java学习笔记②JAVA面向对象
  • 原文地址:https://www.cnblogs.com/rfheh/p/4409961.html
Copyright © 2011-2022 走看看