title: MapFragment become not responsive after rotate
body: <p>My probleme is simple, I add 4 FrameLayout to my XML and add 4 MapFragment by code in those containers.</p>
  
  <p>like this : </p>
  
  <pre><code>&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:id="@+id/map_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"&gt;
    &lt;LinearLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:layout_weight="0.5"
      android:orientation="horizontal"&gt;
      &lt;FrameLayout
        android:id="@+id/map1_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="0.5""/&gt;
      &lt;FrameLayout
        android:id="@+id/map2_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="0.5"/&gt;
    &lt;/LinearLayout&gt;
    &lt;LinearLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:layout_weight="0.5"
      android:orientation="horizontal"&gt;
      &lt;fragment
        android:id="@+id/map3_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="0.5"/&gt;
      &lt;fragment
        android:id="@+id/map4_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="0.5""/&gt;
    &lt;/LinearLayout&gt;
  </code></pre>
  
  <p>and in my activity</p>
  
  <pre><code>public class MultiGoogleMapActivity extends FragmentActivity {
  
      private GoogleMap mMap;
      private GoogleMap mMapUp;
      private GoogleMap mMapMiddle;
      private GoogleMap mMapLow;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_multi_google_map);
  
  mMap1Fragment = SupportMapFragment.newInstance();
      FragmentTransaction fragmentTransaction = getSupportFragmentManager()
                          .beginTransaction();
                  fragmentTransaction.add(R.id.map1_container, mMap1Fragment, MAP_FRAGMENT_TAG);
                  fragmentTransaction.commit();
  mMap2Fragment = SupportMapFragment.newInstance(new GoogleMapOptions().zoomControlsEnabled(false).zoomGesturesEnabled(false).compassEnabled(false).rotateGesturesEnabled(false).scrollGesturesEnabled(false));
      FragmentTransaction fragmentTransaction = getSupportFragmentManager()
                          .beginTransaction();
                  fragmentTransaction.add(R.id.map2_container, mMap2Fragment, MAP_FRAGMENT_TAG);
                  fragmentTransaction.commit();
  mMap3Fragment = SupportMapFragment.newInstance(new GoogleMapOptions().zoomControlsEnabled(false).zoomGesturesEnabled(false).compassEnabled(false).rotateGesturesEnabled(false).scrollGesturesEnabled(false));
      FragmentTransaction fragmentTransaction = getSupportFragmentManager()
                          .beginTransaction();
                  fragmentTransaction.add(R.id.map3_container, mMap3Fragment, MAP_FRAGMENT_TAG);
                  fragmentTransaction.commit();
  mMap4Fragment = SupportMapFragment.newInstance(new GoogleMapOptions().zoomControlsEnabled(false).zoomGesturesEnabled(false).compassEnabled(false).rotateGesturesEnabled(false).scrollGesturesEnabled(false));
      FragmentTransaction fragmentTransaction = getSupportFragmentManager()
                          .beginTransaction();
                  fragmentTransaction.add(R.id.map4_container, mMap4Fragment, MAP_FRAGMENT_TAG);
                  fragmentTransaction.commit();
  
          setUpMapIfNeeded();
      }
  
      @Override
      protected void onResume() {
          super.onResume();
          setUpMapIfNeeded();
      }
  
      private void setUpMapIfNeeded() {
          // Do a null check to confirm that we have not already instantiated the
          // map.
          if (mMap == null) {
              mMap = mMap1Fragment.getMap();
          }
          if (mMapUp == null) {
              mMapUp = mMap2Fragment.getMap();
              mMapUp.setOnMapClickListener(new OnMapClickListener() {
  
                  public void onMapClick(LatLng arg0) {
                      CameraPosition cp = mMapUp.getCameraPosition();
                      mMapUp.moveCamera(CameraUpdateFactory.newCameraPosition(mMap.getCameraPosition()));
                      mMap.moveCamera(CameraUpdateFactory.newCameraPosition(cp));
                  }
              });
  
          }
          if (mMapMiddle == null) {
              mMapMiddle = mMap3Fragment.getMap();
              mMapMiddle.setOnMapClickListener(new OnMapClickListener() {
  
                  public void onMapClick(LatLng arg0) {
                      CameraPosition cp = mMapMiddle.getCameraPosition();
                      mMapMiddle.moveCamera(CameraUpdateFactory
                              .newCameraPosition(mMap.getCameraPosition()));
                      mMap.moveCamera(CameraUpdateFactory
                              .newCameraPosition(cp));
                  }
              });
          }
          if (mMapLow == null) {
              mMapLow = mMap4Fragment.getMap();
              mMapLow.setOnMapClickListener(new OnMapClickListener() {
  
                  public void onMapClick(LatLng arg0) {
                      CameraPosition cp = mMapLow.getCameraPosition();
                      mMapLow.moveCamera(CameraUpdateFactory
                              .newCameraPosition(mMap.getCameraPosition()));
                      mMap.moveCamera(CameraUpdateFactory
                              .newCameraPosition(cp));
                  }
              });
          }
          initializeMapsPositions();
      }
  
      private void initializeMapsPositions() {
          if (mMap != null) {
              mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(
                      47.224217, -1.631409), 16));
          }
          if (mMapUp != null) {
              mMapUp.setOnCameraChangeListener(new OnCameraChangeListener() {
  
                  public void onCameraChange(CameraPosition arg0) {
                      mMapUp.animateCamera(CameraUpdateFactory.newLatLngBounds(
                              new LatLngBounds(new LatLng(-21.417276,55.039925),
                                          new LatLng(-20.815174,56.008095)),
                              10));
                      mMapUp.setOnCameraChangeListener(null);
                  }
              });
  
          }
          if (mMapMiddle != null) {
              mMapMiddle.setOnCameraChangeListener(new OnCameraChangeListener() {
  
                  public void onCameraChange(CameraPosition arg0) {
                      mMapMiddle.animateCamera(CameraUpdateFactory.newLatLngBounds(
                              new LatLngBounds(new LatLng(14.337573,-61.441246), 
                                              new LatLng(14.947439,-60.603539)), 
                              10));
                      mMapMiddle.setOnCameraChangeListener(null);
                  }
              });
          }
          if (mMapLow != null) {
              mMapLow.setOnCameraChangeListener(new OnCameraChangeListener() {
  
                  public void onCameraChange(CameraPosition arg0) {
                      mMapLow.animateCamera(CameraUpdateFactory.newLatLngBounds(
                              new LatLngBounds(new LatLng(17.596903,-78.448288), 
                                              new LatLng(18.643643,-76.207077)), 
                              10));
                      mMapLow.setOnCameraChangeListener(null);
                  }
              });
  
          }
  
      }
  
  }
  </code></pre>
  
  <p>The probleme is : when i rotate the device, the MapFragments don't resond to touch events anymore...</p>
  
  <p>Did anyone have the same probleme and solve it?</p>