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

本文介绍了Android开发中如何实现一个自定义的Fragment管理类,该类能够自动管理Fragment的生命周期,支持在FragmentActivity和Fragment内嵌套使用。通过此管理器,可以实现Fragment的缓存效果,当切换回之前的状态时,无需重新实例化和创建View,提高性能。同时还讲解了Fragment中View复用的实现方法,并提供了FragmentCacheManager的使用指南。
最低0.47元/天 解锁文章
1018

被折叠的 条评论
为什么被折叠?



