¿Cómo implementar Google Maps dentro de un fragmento y usar el objeto GoogleMap?
¿Cómo implementar GoogleMap en un fragmento?
Estoy tratando de desarrollar lo mismo, pero getMap () no se puede ejecutar porque SupportMapFragment (al ejecutar la línea (SupportMapFragment) getActivity (). GetSupportFragmentManager (). FindFragmentById (R.id.map)) devuelve un objeto nulo .
- No se puede leer packageName desde AndroidManifest.xml
- Android - ¿Cómo puedo detectar si el usuario ha decidido compartir con Facebook o Twitter con la intención?
- Android contentprovider no devolver Phone.NUMBER
- SQLite en Android Cómo actualizar una fila específica
- ¿Cómo puedo contestar una llamada telefónica y colgarla?
He intentado extender MapFragment y SupportMapFragment en lugar de Fragment, pero no funcionaron …
Simplemente no quiero crear una nueva actividad para mostrar un mapa: Quiero mostrar un mero mapa en lugar de mi actividad principal. ¿Puedo cumplir mi meta?
Tengo una actividad principal que extiende ActionBarActivity, que reemplaza los fragmentos dentro de un contenedor (dependiendo de la selección del usuario en el cajón, el fragmento X o Y es reemplazado y mostrado). Tengo 2 fragmentos funcionando, pero no puedo lograr el objetivo de manipular un objeto de GoogleMap dentro de un Fragmento.
Ese es mi mapa.xml
<?xml version="1.0" encoding="utf-8"?> <fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/mapaPrincipal" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.SupportMapFragment" />
Esa es mi clase FragmentMapa:
import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.SupportMapFragment; import com.ingartek.bizkaimove.R; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class FragmentMapa extends Fragment { private GoogleMap mMapa; public FragmentMapa() { // TODO Auto-generated constructor stub } @Override public void onAttach (Activity activity) { super.onAttach(activity); } @Override public void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.mapa, container, false); mMapa = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.mapaPrincipal)).getMap(); return rootView; }
La línea resaltada no funciona porque el objeto SupportMapFragment es nulo y por lo tanto, getMap () se bloquea.
Cualquier ayuda por favor? Gracias por adelantado.
SOLUCIÓN A MI PROBLEMA
Para cualquier persona que se enfrenta a un problema como el mío: no debe utilizar getSupportFragmentManager (), en su lugar debe utilizar getChildFragmentManager (). Esto debe permanecer así:
@Override public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.mapa, container, false); setupMapIfNeeded(); return rootView; } private void setupMapIfNeeded() { if( mMapa == null ){ SupportMapFragment smf = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.mapaPrincipal); if( smf != null ){ Toast.makeText(getActivity(), "Let's go!!", Toast.LENGTH_SHORT).show(); mMapa = smf.getMap(); }else{ Toast.makeText(getActivity(), "SMF is null...", Toast.LENGTH_SHORT).show(); } if( mMapa != null ){ setupMap(); } } } private void setupMap() { // TODO Auto-generated method stub Toast.makeText(getActivity(), "Configure the map", Toast.LENGTH_SHORT).show(); }
- Mensaje de Android entre clases
- Proguard mientras que la biblioteca Butterknife y otras advertencias
- ¿Cuál es la manera más apropiada de leer todos los datos de un archivo de texto de una sola vez?
- Problema en la lectura de la palabra francesa desde el archivo de texto en java / android
- Android: guarda Object to SharedPreferences y lo consigue en cualquier lugar de la aplicación.
- La generación de Gradle no pudo resolver la dependencia de la biblioteca aar (trnql sdk)
- Cómo programar una tarea en android
- Google Cloud Messaging: los mensajes se reciben de forma instantánea o con demora prolongada
Hola puedes referir mi respuesta aquí
Tienes que llamar así …
SupportMapFragment fragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.mapaPrincipal); mMapa = fragment.getMap();
- Cómo configurar el estilo a un progressBar mediante programación en Android
- Android: ¿Cómo harías que los botones no se pudieran hacer clic durante algún tiempo?