Eu tenho um FragmentActivity e quero usar um fragmento de mapa dentro dele. Estou com problemas para obter o gerenciador de fragmentos de suporte para acessá-lo.
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
fonte
fonte
Tudo que você precisa fazer é usar
método no seu fragmento. Ele fornecerá o gerenciador de fragmentos de suporte quando você o usar enquanto adiciona esse fragmento.
Documentação de fragmentos
fonte
Simplesmente compre-o assim -
OU
no método onActivityCreated () do seu Fragment e em qualquer método que esteja sendo chamado após onActivityCreated ().
fonte
Usuários do Kotlin tentam esta resposta
fonte
se você tiver esse problema e estiver no nível 21 da API, faça o seguinte:
isso obterá o mapa quando usado dentro de um fragmento.
fonte
Você pode usar
getActivity().getSupportFragmentManager()
quando quiser getSupportFragmentManager.hierarquia é Atividade -> fragmento. fragmento não é capaz de chamar diretamente getSupportFragmentManger, mas Activity pode. Assim, você pode usar getActivity para chamar a atividade atual em que o fragmento está e obter
getSupportFragmentManager()
fonte
Minha atividade pai estende AppCompatActivity, então tive que converter meu contexto para AppCompatActivity em vez de apenas Activity.
por exemplo.
fonte
((AppCompatActivity) mContext)
parte foi exatamente o que eu estava procurando. Obrigado!faça isso no seu fragmento
fonte
getActivity().getFragmentManager()
Isso funcionou ou eu.Também dê uma olhada aqui.
fonte
fonte
em java você pode substituir por
no kotlin, simplifique
espero que ajude :)
fonte
O código a seguir faz o truque para mim
fonte
Você pode usar childFragmentManager dentro de Fragments.
fonte
Você pode simplesmente acessar como
e depois use
fonte
Algum código Kotlin para usar supportFragmentManager dentro de um Fragmento.
fonte
getSupportFragmentManager()
usado quando você está em atividade e deseja obter um fragmento, mas no fragmento você pode acessarAo usar outro método chamado,
getFragmentMangaer()
funciona da mesma maneiragetSupportFragmentManager()
e você pode usá-lo como costumava:fonte
A nova maneira simples de fazer isso no kotlin
fonte
Tente o seguinte:
fonte