private void setupViewPager(ViewPager viewPager) { Adapter adapter = new Adapter(getSupportFragmentManager()); adapter.addFragment(new CheeseListFragment(), "Tab 1"); adapter.addFragment(new CheeseListFragment(), "Tab 2"); adapter.addFragment(new CheeseListFragment(), "Tab 1"); adapter.addFragment(new CheeseListFragment(), "Tab 2"); viewPager.setAdapter(adapter); } static class Adapter extends FragmentPagerAdapter { private final List<Fragment> mFragments = new ArrayList<Fragment>(); private final List<String> mFragmentTitles = new ArrayList<String>(); public Adapter(FragmentManager fm) { super(fm); } public void addFragment(Fragment fragment, String title) { mFragments.add(fragment); mFragmentTitles.add(title); } @Override public Fragment getItem(int position) { return mFragments.get(position); } @Override public int getCount() { return mFragments.size(); } @Override public CharSequence getPageTitle(int position) { return mFragmentTitles.get(position); } } This method is called, for some reason only two times. It's not entirely clear why.
CheeseListFragment.java
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { RecyclerView rv = (RecyclerView) inflater.inflate( R.layout.fragment_cheese_list, container, false); // setupRecyclerView(rv); return rv; }