Cambio del fragmento de mapa a otro Fragmento y reverso

Tengo una actividad de fragmento que conmuta fragmentos al hacer clic en el botón.
Los dos fragmentos que cambio son:

  1. Google map android v2 fragment
  2. Otro fragmento con una vista de texto

Así es como cambio los fragmentos:

public void onClick(View v) { FragmentManager fm = getSupportFragmentManager(); if(tv.getText().toString().equalsIgnoreCase("Click ME!!")){ tv.setText("MAP"); if (fm != null) { if(map == null){ map = new Map(); } FragmentTransaction ft = fm.beginTransaction(); ft.replace(R.id.lay_contaier, map); ft.commit(); } } else{ tv.setText("Click ME!!"); if (fm != null ){ FragmentTransaction ft = fm.beginTransaction(); ft.replace(R.id.lay_contaier,new empty()); ft.commit(); } } } 

Este es mi código de Google Maps Fagment

  public class Map extends Fragment implements OnMarkerClickListener, OnInfoWindowClickListener, OnMarkerDragListener { private static final LatLng PERTH = new LatLng(-31.952854, 115.857342); private static final LatLng SYDNEY = new LatLng(-33.87365, 151.20689); private GoogleMap mMap; private Marker mPerth; private Marker mSydney; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.activity_main,null); return view; } 

Activity_mail.xml

 <?xml version="1.0" encoding="utf-8"?> <fragment xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/map" android:layout_width="fill_parent" android:layout_height="fill_parent" class="com.google.android.gms.maps.SupportMapFragment"/> 

Pero cada vez que vuelvo al fragmento de mapa, la aplicación se bloquea. ¿Cómo debo hacer este código correcto?

2 Solutions collect form web for “Cambio del fragmento de mapa a otro Fragmento y reverso”

Sospecho que esto le está sucediendo porque tiene su fragmento de mapa definido en su archivo de diseño XML. Para intercambiar fragmentos de esta manera, necesitará instanciar su mapa en código, algo como lo siguiente:

 private void initializeMap() { mMapFragment = SupportMapFragment.newInstance(); FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); fragmentTransaction.add(R.id.fragment_container, mMapFragment, "map"); fragmentTransaction.commit(); handler.post(new Runnable() { @Override public void run() { mMap = mMapFragment.getMap(); mMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() { @Override public void onCameraChange(CameraPosition cameraPosition) { // Do something here } }); } }); } 

Me pareció que mMapFragment.getMap() estaba devolviendo null, por lo que tendrá que programar el resto de la configuración a través de una instancia de Handler . Mi XML de diseño se ve así:

 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".LauncherActivity"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/fragment_container"> <!-- The fragments will go here --> </RelativeLayout> <RelativeLayout android:layout_gravity="start" android:layout_height="match_parent" android:layout_width="wrap_content" android:background="@color/drawer_background"> ... </RelativeLayout> </android.support.v4.widget.DrawerLayout> 

Espero que esto ayude.

Está haciendo FragmentManager Null. Quitar fm=null . También en el bucle else está reemplazando dos fragmentos. No haga doble reemplazo a la vez. Antes de llamar a commit (), solo hace un reemplazo

  • App se está estrellando en la parte posterior presionado cuando el uso de mapa dentro de fragmento en android?
  • Cómo mover el marcador a lo largo de la polilínea mediante google map
  • Cómo mostrar el icono parpadeando en el mapa de google
  • GetMapAsync () en el fragmento
  • Extracción de datos del archivo CSV (tabla de fusión y solución alternativa de kml)
  • Error de Google Map V2 android error de fragmento de clase de inflado
  • ¿Cómo mostrar un mapa en una mapactividad de Android?
  • Implementar la animación de caída de pines en google maps android
  • SupportMapFragment - visibilidad de fragmento de mapa
  • Android Maps V2 pérdida de memoria LocationClientHelper
  • Error en la autorización de Google Maps para Android API v2
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.