Cajón de navegación y MapFragment

Me gustaría saber cuál es el método correcto para implementar un MapFragment con un cajón de navegación. Yo ya tenía este trabajo bien, pero he estado leyendo algunos documentos y tal vez puede causar problemas en el futuro.

Por lo tanto, mi clase principal donde se ha implementado el cajón de navegación es muy normal, con el siguiente método selectItem() :

 HomeActivity extends Activity{ //... //Stuff like onCreate(), etc. //... private void selectItem(int position) { if (position == 0) { //Position 0 is the map option in the navigationDrawer Fragment fragment = new MapaFragment(); FragmentManager fragmentManager = getFragmentManager(); fragmentManager.beginTransaction() .replace(R.id.content_frame, fragment).commit(); } mDrawerList.setItemChecked(position, true); setTitle(listaElementosDrawer[position]); mDrawerLayout.closeDrawer(mDrawerList); } } 

MapaFragmento, que es el fragmento inflado en la actividad principal, es el siguiente:

 public class MapaFragment extends Fragment { public MapaFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_map, container, false); return rootView; } } 

Y, fragment_map.xml que se infla en MapaFragment es así:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.moictab.decanias.MapActivity$PlaceholderFragment" > <fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.MapFragment" /> </RelativeLayout> 

Observe que este es un mapFragment dentro de un RelativeLayout, y ya está funcionando bien. Pero, si quito el RelativeLayout y dejé sólo el mapFragment, se bloquea porque estoy inflando un fragmento dentro de un fragmento. Así pues, hay las preguntas:

  • ¿Por qué se bloquea cuando se infla el mapFragment pero no se bloquea al inflar el RelativeLayout con el mapFragment dentro? ¿No es esencialmente lo mismo?
  • ¿Cuál es el enfoque correcto para implementar algo así?

Tuve un problema muy simmilar con MapFragment. Esta es mi solución:

Extiendo el objeto SupportMapFragment:

 public class MyMapFragment extends SupportMapFramgment { } 

Y agregarlo programáticamente:

 MyMapFragment fragment = new MyMapFragment(); fragmentManager.beginTransaction().replace(R.id.content_frame,fragment).commit(); 
  • Cómo obtener el nombre de la ciudad de las coordenadas de latitud y longitud en Google Maps?
  • Excepción de mapas de Android java.lang.NoClassDefFoundError: android.security.MessageDigest
  • Cómo tamaño de los iconos de marcadores personalizados para Android Google Maps v2?
  • ¿Cómo centrar la cámara para que el marcador esté en la parte inferior de la pantalla? (Google map api V2 Android)
  • ¿Cómo desarrollar una aplicación de Android con google maps API en varios equipos?
  • ¿Cómo abrir Google Maps con la dirección?
  • Cómo mostrar la ruta entre marcadores en googlemaps
  • ¿Cómo puedo mostrar el mapa de inclinación en Android?
  • API de Google Maps Android - NullPointerException - setBoundsInParent
  • Obtener país de coordenadas?
  • Cambio de z-index (z-order) de marcador de mapa para Maps V2 en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.