先上代码
public class BaseFragmentPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragments = new ArrayList<>();
private final List<String> mTitles = new ArrayList<>();
public BaseFragmentPagerAdapter(FragmentManager fragmentManager, List<Fragment> fragments,
List<String> titles) {
super(fragmentManager);
if (fragments != null) {
this.mFragments.addAll(fragments);
}
if (titles != null) {
this.mTitles.addAll(titles);
}
}
@Override
public Fragment getItem(int i) {
return mFragments.get(i);
}
@Override
public int getCount() {
return mFragments.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return position < mTitles.size() ? mTitles.get(position) : null;
}
}
解释两个问题:
1,为什么要重新new两个list,而不是使用外部传入的对象。
因为外部的对象,很有可能会被修改。在工作中遇到过这样的问题,最好还是自己new一个。
2,mFragments比mTitles更重要
通常mTitles是可选的。
网友评论