GetSupportFragmentManager (). FindFragmentById (R.id.map) comenzó a devolver null
Tengo un fragmento de mapa dentro de otro fragmento. Esto funcionaba antes, pero creo que estropeó después de actualizar google play servicios de la biblioteca. ¿Qué está mal? Fragment_map.xml:
<fragment android:name="com.google.android.gms.maps.SupportMapFragment" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" />
MapFragment:
- Com.tools.fd.runtime.BootstrapApplication no se ejecutará a menos que actualice los servicios de Google Play
- ¿Cómo agregar texto sobre polilínea en google maps?
- ¿Es posible eliminar los puntos de interés predeterminados de Android google map
- He creado una clave de API de mapa de Android para V2, no puedo mostrar un mapa
- Mensaje "Los servicios de Google Play se están actualizando" en SupportMapFragment cuando están en modo de publicación
GoogleMap map; private static View view; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (view != null) { ViewGroup parent = (ViewGroup) view.getParent(); if (parent != null) parent.removeView(view); } try { view = inflater.inflate(R.layout.fragment_map, container, false); map = ((SupportMapFragment) getActivity() .getSupportFragmentManager() .findFragmentById(R.id.map)) .getMap(); // NullPointerException at this line map.getUiSettings().setAllGesturesEnabled(true); map.getUiSettings().setMyLocationButtonEnabled(false); map.getUiSettings().setZoomControlsEnabled(true); } catch (InflateException e) { /* map is already there, just return view as it is */ } return view; }
- Cómo obtener lat y largo en evento de toque de google map?
- Cómo agregar fragmento de mapa mediante programación
- Excepción OutOfMemory para Android Google Maps API V2
- Android Maps API v2 con marcadores personalizados
- Android maps: No se pudo encontrar el estilo 'mapViewStyle' en el tema actual
- Cómo mostrar mapa en android con marcador
- Android: cómo cargar KML
- Cómo envolver el fragmento GoogleMap en un LinearLayout?
Tuve que cambiar
getActivity().getSupportFragmentManager()
a
getChildFragmentManager()
Para que funcione. No sé por qué funcionaba perfectamente hace unos días.
Esta es la respuesta:
Nota: No se puede inflar un diseño en un fragmento cuando ese diseño incluye un fragmento. Los fragmentos anidados sólo se admiten cuando se añaden dinámicamente a un fragmento.
En onCreateView, no deberías estar haciendo esto. Utilice el método sugerido en la documentación oficial para la comunicación entre fragmentos. Aquí, creo que su problema está relacionado con el tiempo. No todos los fragmentos se crean o se gestionan de forma sincrónica. Además, no estoy muy seguro si puedes llamar a getActivity () de onCreateView () – porque los fragmentos recibirán onActivityCreated () callback sólo después de onCreateView ().
- Cómo obtener el identificador de elemento en un controlador onItemClick
- ListView divisores en la parte superior e inferior del elemento ListView