美文网首页
FragmentPagerAdapter的通用实现

FragmentPagerAdapter的通用实现

作者: Frank_Kivi | 来源:发表于2018-10-25 21:37 被阅读27次

先上代码


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是可选的。

相关文章

网友评论

      本文标题:FragmentPagerAdapter的通用实现

      本文链接:https://www.haomeiwen.com/subject/ztchtqtx.html