Android-Fragment懒加载的使用

一、为什么要懒加载
    fragment通常都是与ViewPager配合使用,类似于下图这种页面。一个ViewPager中存放三个fragment,ViewPager默认是缓存两个fragment,也就是说当进入属性分析这个activity的时候已经缓存了基本属性和消费分析的fragment。如果这两个fragment都有网络请求就有可能造成网络阻塞或者用户只看第一个fragment第二页无需加载数据从而造成没有必要的流量消耗。这时候我们可以有两个办法来解决此问题,一个是设置ViewPager的缓存页数为1,ViewPager.setOffscreenPageLimit( int 缓存页数值 );第二个方法是采用懒加载方式,当用户点击上面的tab时进行数据请求和页面渲染。


二.懒加载的使用
fragment给我们提供了方法,这个方法的参数代表用户是否可见
    @Override
    public boolean getUserVisibleHint() {
        return super.getUserVisibleHint();
    }
通过查看fragment的生命周期我们可以看到,这个方法是在onCreat()之前的,如果要有网络请求并且渲染数据的话放在这个方法中可能会造成控件的空指针异常。因为我们的控件有可能还没findViewById(),所以如果要有渲染页面的数据请求不能直接在这个方法中执行。fragment为我们提供了 getUserVisibleHint()的方法。我们可以在onActivityCreated()方法中,调用此方法,这个方法返回的值就是boolean isVisibleToUser,判断用户是否可见。
    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        if (getUserVisibleHint()){
            getData();
        }
    }



 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值