There is an activity. Here is all that it does:
fragmentTransaction = getSupportFragmentManager().beginTransaction(); fragmentTransaction.add(R.id.main_fragment_container, ViewPagerFragment.newInstance(hero)).commit(); That is, adds a fragment with the ViewPager to the container:
public class ViewPagerFragment extends Fragment { private ViewPager mViewPager; private TabLayout mTabLayout; private Toolbar mToolbar; private Hero hero; private int currentPage; public static ViewPagerFragment newInstance(Hero hero) { Bundle args = new Bundle(); args.putParcelable("hero", hero); ViewPagerFragment fragment = new ViewPagerFragment(); fragment.setArguments(args); return fragment; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (getArguments()!= null) hero = getArguments().getParcelable("hero"); if (savedInstanceState == null) { currentPage = 0; } else { currentPage = savedInstanceState.getInt("Page"); } return inflater.inflate(R.layout.fragment_view_pager, container, false); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { mToolbar = (Toolbar) view.findViewById(R.id.toolbar_pager_fragment); ((AppCompatActivity) getActivity()).setSupportActionBar(mToolbar); mViewPager = (ViewPager) view.findViewById(R.id.main_view_pager); mTabLayout = (TabLayout) view.findViewById(R.id.main_tabs); mViewPager.setAdapter(new MainPagerAdapter(getActivity(), getChildFragmentManager(), hero)); mTabLayout.setupWithViewPager(mViewPager); mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { currentPage = position; Log.i(TAG, "onPageScrolled: "+ position); } @Override public void onPageSelected(int position) { currentPage = position; Log.i(TAG, "onPageSelected: "+ position); } @Override public void onPageScrollStateChanged(int state) { } }); } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt("Page",currentPage); Log.i(TAG, "onSaveInstanceState " ); } } But for some reason, savedINstanceState always null . The remaining questions on this topic on stack'e did not help.
publicconstructor - Flippy