/* * Copyright (c) 2015 Zhang Hai <Dreaming.in.Code.ZH@Gmail.com> * All Rights Reserved. */ package me.zhanghai.android.douya.ui; import android.support.design.widget.TabLayout; 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 java.util.ArrayList; import java.util.List; public class TabFragmentPagerAdapter extends FragmentPagerAdapter { private List<FragmentCreator> mFragmentCreatorList = new ArrayList<>(); private List<CharSequence> mTitleList = new ArrayList<>(); @Deprecated public TabFragmentPagerAdapter(FragmentManager fragmentManager) { super(fragmentManager); } public TabFragmentPagerAdapter(FragmentActivity activity) { //noinspection deprecation this(activity.getSupportFragmentManager()); } public TabFragmentPagerAdapter(Fragment fragment) { //noinspection deprecation this(fragment.getChildFragmentManager()); } public void addTab(FragmentCreator fragmentCreator, String title) { mFragmentCreatorList.add(fragmentCreator); mTitleList.add(title); } @Override public Fragment getItem(int position) { return mFragmentCreatorList.get(position).createFragment(); } @Override public int getCount() { return mFragmentCreatorList.size(); } @Override public CharSequence getPageTitle(int position) { return mTitleList.get(position); } /** * @deprecated Use {@link #setPageTitle(TabLayout, int, CharSequence)} instead. */ public void setPageTitle(int position, CharSequence title) { mTitleList.set(position, title); } public void setPageTitle(TabLayout tabLayout, int position, CharSequence title) { //noinspection deprecation setPageTitle(position, title); if (position < tabLayout.getTabCount()) { tabLayout.getTabAt(position).setText(title); } } public interface FragmentCreator { Fragment createFragment(); } }