Ich habe eine FragmentActivity und möchte ein Kartenfragment darin verwenden. Ich habe ein Problem damit, dass der Support-Fragment-Manager darauf zugreifen kann.
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);
android
android-fragments
android-support-library
android-fragmentactivity
fragmentmanager
DjP
quelle
quelle
Alles was Sie tun müssen, ist zu verwenden
Methode auf Ihrem Fragment. Sie erhalten den Support-Fragment-Manager, wenn Sie ihn beim Hinzufügen dieses Fragments verwendet haben.
Fragmentdokumentation
quelle
Einfach so machen -
ODER
in der onActivityCreated () -Methode Ihres Fragments und in jeder Methode, die nach onActivityCreated () aufgerufen wird.
quelle
Kotlin-Benutzer versuchen diese Antwort
quelle
Wenn Sie dieses Problem haben und sich auf API-Level 21+ befinden, gehen Sie wie folgt vor:
Dadurch wird die Karte abgerufen, wenn sie innerhalb eines Fragments verwendet wird.
quelle
Sie können
getActivity().getSupportFragmentManager()
jederzeit verwenden, um SupportSragmentManager zu erhalten.Hierarchie ist Aktivität -> Fragment. fragment kann getSupportFragmentManger nicht direkt aufrufen, Activity jedoch. Daher können Sie getActivity verwenden, um die aktuelle Aktivität, in der sich das Fragment befindet, aufzurufen und abzurufen
getSupportFragmentManager()
quelle
Meine übergeordnete Aktivität erweitert AppCompatActivity, sodass ich meinen Kontext in AppCompatActivity anstatt nur in Aktivität umwandeln musste.
z.B.
quelle
((AppCompatActivity) mContext)
Teil war genau das, wonach ich gesucht habe. Danke dir!Mach das in deinem Fragment
quelle
getActivity().getFragmentManager()
Das hat funktioniert oder ich.Schauen Sie sich auch hier an.
quelle
quelle
In Java können Sie durch ersetzen
Machen Sie es in Kotlin einfach durch
hoffe es hilft :)
quelle
Der folgende Code macht den Trick für mich
quelle
Sie können childFragmentManager in Fragmenten verwenden.
quelle
Sie können einfach auf like zugreifen
und dann verwenden
quelle
Einige Kotlin-Codes zur Verwendung von supportFragmentManager in einem Fragment.
quelle
getSupportFragmentManager()
Wird verwendet, wenn Sie in Aktivität sind und ein Fragment erhalten möchten, aber auf das Fragment können Sie zugreifenWenn Sie eine andere Methode verwenden,
getFragmentMangaer()
die genauso funktioniertgetSupportFragmentManager()
, können Sie sie wie früher verwenden:quelle
Die einfache neue Art, es in Kotlin zu tun
quelle
Versuche dies:
quelle