请看我的另外一篇文章,更好《Fragment管理的工具类》
有些时候我们都需要Fragment的延时加载,这样可以减轻多个fragment在初始化时的切换的卡顿。
多个fragment的使用方式有两种,一个是在ViewPager中使用,另一个是通过add()方法添加到Activity,然后通过show(),和hide()方法控制Fragment的显示。
其实要做到延时就是继承Fragment,然后修改它的setUserVisibleHint方法就行了。根据boolean值判断是不是可见就行了
下面就是他的代码
package com.yky.fragementtest.fragmentdao;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.app.FragmentTransaction;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
* Created by Administrator on 2015/4/28.
*/
public abstract class AbsFragment extends android.support.v4.app.Fragment {
protected View mRootView;
protected byte isInitState = 0x00; //是否已加载(0x00 未加载 , 0x01 加载中 , 0x02 加载完成)
private Handler mPriHandler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 1: //可见
onVisiable();
break;
case 2: //不可见
onInvisiable();
break;
case 3: //第一次加载
if (isInitState == 0x00) {
isInitState = 0x01;
onFirst