Android 自定义Fragment切换管理类,自动管理Fragment的生命周期,支持FragmentActivity和Fragment里面嵌套fragment

Android 开发很多时候都需要一个界面的嵌套多个Fragment的需求,或者在Fragment里面嵌套Fragment的情况。
需求通过点击事件切换不通 的Fragment ,同时拥有上个Fragment的缓存效果,再次切换回去的时候无需再次实例
化Fragment和View对象。通过Bundle像Framgment传递数据

实现效果图片
底部切换和分类中Fragment的切换

FragmentCacheManager 代码实现如下

public class FragmentCacheManager {

    public FragmentCacheManager() {
        mCacheFragment = new SparseArray<>();
    }

    private FragmentManager mFragmentManager;

    private Activity mActivity;

    private Fragment mFragment;

    private int mContainerId;

    private long mLastBackTime;

    private onBootCallBackListener listener;
    //缓存的Fragment集合数据
    private SparseArray<FragmentInfo> mCacheFragment;
    public static boolean DEBUG = false;
    //当前展示的Fragment
    private Fragment mCurrentFragment;
    private int mCurrentFragmentIndex = -1;


    public void setUp(FragmentActivity activity, int containerId) {
        if (mFragment != null) {
            throw new RuntimeException("you have setup for Fragment");
        }
        this.mActivity = activity;
        this.mContainerId = containerId;
        mFragmentManager = activity.getSupportFragmentManager();
    }

    public void setUp(Fragment fragment, int containerId) {
        if (mActivity != null) {
            throw new RuntimeException("you have setup for Activity");
        }
        this.mFragment = fragment;
        this.mContainerId = containerId;
        mFragmentManager = fragment.getChildFragmentManager();
        //Fragment所在的Activity
        mActivity = fragment.getActivity();
    }

    public void setCurrentFragment(int index) {
  
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值