Android的优化 ViewPager结合Fragment的懒加载使用

        目前的Android应用开发中,几乎每一款应用都会应用到碎片Fragment,大大改善了用户的体验。
今天和大家一起看看ViewPager结合Fragment的懒加载使用,即当Fragment对用户可见时,在进行数据的加载。

实现:
在Fragment中有一个setUserVisibleHint()方法,优先于Fragment的生命周期调用,其方法内有一boolean类型的参数,由其即可判断出当前碎片是否对用户可见。判断的用户可见时再调用加载数据方法。

问题:在使用时碰到的最大问题,当可见时,布局及控件可能未初始化完成。因此必须再一次进行布局是否初始化的判断。下面上代码。


        

public class LanFragment extends Fragment {

    private boolean isCreate;

    private boolean isUserVisible;


    //setUserVisibleHint()Fragment创建时会先被调用一次,此时用户不可见,并且每次发生用户可见/不可见的变化时,都会调用此方法,传不同的值。
    //总结:setUserVisibleHint()除了Fragment的可见状态发生变化时会被回调外,在new Fragment()时也会被回调
    //如果我们需要在 Fragment 可见与不可见时干点事,用这个的话就会有多余的回调了,那么就需要重新封装一个
    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);

        isUserVisible = isVisibleToUser;
        if (isUserVisible) {
            loadData();
        }

    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        isCreate = true;

        loadData();
    }

    private void loadData() {
        if (isCreate && isUserVisible) {

            //加载数据
        }
    }

}


至于优化问题,就交给各位道友自行处理,希望能帮到一些忙。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值