BaseLazyFragment.java 895 字节
Newer Older
B
Blankj 已提交
1 2
package com.blankj.androidutilcode.base;

B
Blankj 已提交
3
import android.util.Log;
B
Blankj 已提交
4 5 6 7 8 9 10 11 12

/**
 * <pre>
 *     author: blankj
 *     blog  : http://blankj.com
 *     time  : 2018/03/23
 *     desc  :
 * </pre>
 */
B
Blankj 已提交
13 14 15 16 17
public abstract class BaseLazyFragment extends BaseFragment {

    private static final String TAG = "BaseLazyFragment";

    private boolean isDataLoaded;
B
Blankj 已提交
18

B
Blankj 已提交
19
    public abstract void doLazyBusiness();
B
Blankj 已提交
20 21 22

    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
B
Blankj 已提交
23
        Log.d(TAG, "setUserVisibleHint: " + isVisibleToUser);
B
Blankj 已提交
24
        super.setUserVisibleHint(isVisibleToUser);
B
Blankj 已提交
25
        if (isVisibleToUser && mContentView != null && !isDataLoaded) {
B
Blankj 已提交
26 27
            doLazyBusiness();
            isDataLoaded = true;
B
Blankj 已提交
28 29 30 31
        }
    }

    @Override
B
Blankj 已提交
32 33 34 35 36
    public void doBusiness() {
        if (getUserVisibleHint()) {
            doLazyBusiness();
            isDataLoaded = true;
        }
B
Blankj 已提交
37 38
    }
}