title: Handle Fragments from ViewPager when orientation changes
body: <p>I have been tring since this morning to handle screen rotation with the viewpager, i tried a lot of things i read almost every post here about this and i was unable to find my issue.</p>
  
  <p><strong>Issues</strong></p>
  
  <ol>
  <li>When i change the oriention it deletes 3 or 4 pages, i have to swipe right 3 or   4 times in order to see other pages. Changing from to portrait works almost everytime, no pages get deleted, but if i go from portrait to landscape the pages disappear</li>
  </ol>
  
  <p>I read in one of the post that this is due the fragment being distroyed when orientation changes and that we need to use setRetainInstance(true); inside on create to fix this but it's not working, am i missing something here?</p>
  
  <pre><code>    public class SectionsPagerAdapter extends FragmentStatePagerAdapter {
  
      public SectionsPagerAdapter(FragmentManager fm) {
          super(fm);
      }
  
      @Override
      public Fragment getItem(int position) {
          // getItem is called to instantiate the fragment for the given page.
          // Return a PlaceholderFragment (defined as a static inner class below).
          if (position &lt;= (arraySize - 1)) {
              HashMap&lt;String, String&gt; data = computeQuestion(questoes[randomize.get(position)]);
              return PlaceholderFragment.newInstance(position + 1, data, tables[randomize.get(position)]);
          } else {
              return FragmentResultados.newInstance(position + 1);
          }
      }
  
      @Override
      public int getCount() {
          return arraySize + 1; // number of pages + ending page
      }
  
      @Override
      public CharSequence getPageTitle(int position) {
          switch (position) {
              case 0:
                  return "SECTION 1";
              case 1:
                  return "SECTION 2";
              case 2:
                  return "SECTION 3";
              default:
                  return String.valueOf(position);
          }
      }
      }
  </code></pre>
  
  <p><strong>Fragment</strong></p>
  
  <pre><code> @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setRetainInstance(true);
      }
  </code></pre>
  
  <p><strong>EDIT</strong></p>
  
  <p>Fragment</p>
  
  <pre><code>@Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container,
                               Bundle savedInstanceState) {
          View rootView = inflater.inflate(R.layout.fragment_exame, container, false);
  
          mViewPager = (ViewPager) getActivity().findViewById(R.id.container);
          mSectionsPagerAdapter = new SectionsPagerAdapter(getChildFragmentManager());
          mViewPager.setAdapter(mSectionsPagerAdapter);
          return rootView;
      }
  </code></pre>
  
  <p>Result: IllegalStateException: FragmentManager is already executing transactions</p>
  
  <p><strong>Activity</strong></p>
  
  <pre><code> private static ViewPager mViewPager;
   private static FragmentStatePagerAdapter mSectionsPagerAdapter;  
  
        @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_exame2);
      mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
      mViewPager = (ViewPager) findViewById(R.id.container);
      mViewPager.setAdapter(mSectionsPagerAdapter);
      }
  </code></pre>
  
  <p><strong>Manifest</strong></p>
  
  <pre><code> &lt;activity
          android:name=".Exame"
          android:label="@string/title_activity_exame"
          android:theme="@style/AppTheme"
          android:configChanges="keyboardHidden|orientation|screenSize"/&gt;
  </code></pre>
  
  <p><strong>activity_xml</strong></p>
  
  <pre><code>&lt;android.support.design.widget.CoordinatorLayout      xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:id="@+id/main_content"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:fitsSystemWindows="true"
  tools:context="pt.condutorresponsavel.android.testescodigo.Exame"&gt;
  
  &lt;RelativeLayout
  android:layout_width="match_parent"
  android:layout_height="match_parent"&gt;
  
  &lt;android.support.v4.view.ViewPager
      android:id="@+id/container"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:layout_behavior="@string/appbar_scrolling_view_behavior" /&gt;
  
  &lt;ImageView
      android:id="@+id/arrowLeft"
      android:background="@color/colorPrimary"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:src="@drawable/ic_first_page_white_24dp"
      android:paddingLeft="10dp"
      android:paddingTop="3dp"
      android:paddingRight="10dp"
      android:paddingBottom="3dp"
      android:onClick="toFirst"
     /&gt;
  
  &lt;ImageView
      android:background="@color/colorPrimary"
      android:onClick="toLast"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:src="@drawable/ic_last_page_white_24dp"
      android:paddingLeft="10dp"
      android:paddingTop="3dp"
      android:paddingRight="10dp"
      android:paddingBottom="3dp"
      android:layout_alignParentRight="true"
      android:id="@+id/arrowRight" /&gt;
  
  &lt;TextView
      android:id="@+id/timeleft"
      android:textColor="#ffffff"
      android:background="@color/colorPrimary"
      android:paddingRight="10dp"
      android:paddingLeft="5dp"
      android:gravity="center"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="20:01"
      android:layout_alignBottom="@+id/arrowRight"
      android:layout_toLeftOf="@+id/arrowRight"
      android:layout_toStartOf="@+id/arrowRight"
      android:layout_alignParentTop="true" /&gt;
  </code></pre>
  
  <p></p>
  
  <p></p>
  
  <p>i uploaded a sample o the code to <a href="https://github.com/tiagooliveira95/Viewpager/blob/master/viewpager.java" rel="nofollow">github</a></p>
  
  <p><strong>FIXED</strong></p>
  
  <pre><code>private void InitializeUI(){
      mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
      mViewPager = (ViewPager) findViewById(R.id.container);
      mViewPager.setAdapter(mSectionsPagerAdapter);
  
  }
  
  @Override
  public void onConfigurationChanged(Configuration newConfig) {
      super.onConfigurationChanged(newConfig);
      setContentView(R.layout.activity_exame2);
      InitializeUI();
  }
  </code></pre>