Fragment的赖加载

2017-10-26  本文已影响17人  NewSalton

提供两种方法:

第一种:setUserVisibleHint

这一种的使用方法比较特殊
注释:setUserVisibleHint每次fragment显示与隐藏都会调用,他的调用顺序由于onCreate,所以需要一些常量进行判断

private boolean mHasLoadedOnce = false;
@Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        if (this.isVisible()) {
            // we check that the fragment is becoming visible
            if (isVisibleToUser && !mHasLoadedOnce && mArrayList==null) {
                 
                                // async http request here
                mHasLoadedOnce = true;
            }
        }
        super.setUserVisibleHint(isVisibleToUser);
    }

由于setUserVisibleHint优于onCreate调用,所以当onCreate调用完毕setUserVisibleHint就不会触发,这时需要在首个显示的fragment调用setUserVisibleHint方法

@Override
    public void onActivityCreated(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        setUserVisibleHint(true);
        super.onActivityCreated(savedInstanceState);
    }

第二种:onHiddenChanged

当FragmentTranscation调用了hide(Fragment mFragment)以后会回调OnHidden(boolean isHidden)方法
这个方法相对更加简单

上一篇 下一篇

猜你喜欢

热点阅读