Tengo una FragmentActivity y quiero usar un fragmento de mapa dentro de ella. Tengo un problema para que el administrador de fragmentos de soporte acceda a él.
if (googleMap == null) {
googleMap = ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map1)).getMap();
// check if map is created successfully or not
if (googleMap == null) {
Toast.makeText(getApplicationContext(),
"Sorry! unable to create maps", Toast.LENGTH_SHORT)
.show();
}
}
// create marker
MarkerOptions marker = new MarkerOptions().position(
new LatLng(latitude, longitude)).title("Hello Maps ");
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(new LatLng(latitude, longitude)).zoom(15).build();
googleMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPosition));
// adding marker
googleMap.addMarker(marker);
Todo lo que necesitas hacer es usar
Método en su fragmento. Le dará el administrador de fragmentos de soporte, cuando lo usó al agregar este fragmento.
Documentación de fragmentos
fuente
Simplemente hazlo así:
O
en el método onActivityCreated () de su Fragment y cualquier método que se llame después de onActivityCreated ().
fuente
Los usuarios de Kotlin prueban esta respuesta
fuente
Si tiene este problema y está en el nivel 21+ de la API, haga esto:
esto obtendrá el mapa cuando se use dentro de un fragmento.
fuente
Puede usarlo en
getActivity().getSupportFragmentManager()
cualquier momento que desee obtenerSupportFragmentManager.jerarquía es Actividad -> fragmento. fragment no es capaz de llamar directamente a getSupportFragmentManger, pero Activity puede. Por lo tanto, puede usar getActivity para llamar a la actividad actual en la que se encuentra el fragmento y obtener
getSupportFragmentManager()
fuente
My Parent Activity amplía AppCompatActivity, así que tuve que transmitir mi contexto a AppCompatActivity en lugar de solo Activity.
p.ej.
fuente
((AppCompatActivity) mContext)
parte era EXACTAMENTE lo que estaba buscando. ¡Gracias!haz esto en tu fragmento
fuente
getActivity().getFragmentManager()
Esto funcionó o yo.También eche un vistazo aquí.
fuente
fuente
en java puedes reemplazar con
en kotlin, hazlo simple
espero que ayude :)
fuente
El siguiente código hace el truco para mí
fuente
Puede usar childFragmentManager dentro de Fragments.
fuente
Simplemente puede acceder como
y luego usar
fuente
Algún código de Kotlin para usar supportFragmentManager dentro de un Fragment.
fuente
getSupportFragmentManager()
Se utiliza cuando está en actividad y quiere obtener un fragmento, pero en el fragmento puede accedermediante el uso de otro método llamado
getFragmentMangaer()
funciona igualgetSupportFragmentManager()
y puede usarlo como solía hacerlo:fuente
La nueva forma simple de hacerlo en Kotlin
fuente
Prueba esto:
fuente