package com.hjq.base; import android.support.annotation.NonNull; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.view.ViewGroup; import java.util.ArrayList; import java.util.List; /** * desc : FragmentPagerAdapter 基类 */ public class BaseFragmentAdapter extends FragmentPagerAdapter { private List mFragmentSet = new ArrayList<>(); // Fragment集合 private F mCurrentFragment; // 当前显示的Fragment public BaseFragmentAdapter(FragmentActivity activity) { this(activity.getSupportFragmentManager()); } public BaseFragmentAdapter(Fragment fragment) { this(fragment.getChildFragmentManager()); } public BaseFragmentAdapter(FragmentManager manager) { super(manager); } @Override public F getItem(int position) { return mFragmentSet.get(position); } @Override public int getCount() { return mFragmentSet.size(); } @Override public void setPrimaryItem(@NonNull ViewGroup container, int position, @NonNull Object object) { if (getCurrentFragment() != object) { // 记录当前的Fragment对象 mCurrentFragment = (F) object; } super.setPrimaryItem(container, position, object); } public void addFragment(F fragment) { mFragmentSet.add(fragment); } /** * 获取Fragment集合 */ public List getAllFragment() { return mFragmentSet; } /** * 获取当前的Fragment */ public F getCurrentFragment() { return mCurrentFragment; } }