| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- 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<F extends Fragment> extends FragmentPagerAdapter {
- private List<F> 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<F> getAllFragment() {
- return mFragmentSet;
- }
- /**
- * 获取当前的Fragment
- */
- public F getCurrentFragment() {
- return mCurrentFragment;
- }
- }
|