У меня есть FragmentActivity, и я хочу использовать в нем фрагмент карты. У меня проблема с получением менеджера фрагмента поддержки для доступа к нему.
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);
Все, что вам нужно сделать, это использовать
метод на вашем фрагменте. Он даст вам поддержку менеджера фрагментов, когда вы использовали его при добавлении этого фрагмента.
Фрагмент документации
источник
Просто получите это так -
ИЛИ
в методе onActivityCreated () вашего фрагмента и любом методе, который вызывается после onActivityCreated ().
источник
Пользователи Kotlin попробуют этот ответ
источник
если у вас есть эта проблема и вы находитесь на уровне API 21+, сделайте это:
это получит карту при использовании внутри фрагмента.
источник
Вы можете использовать в
getActivity().getSupportFragmentManager()
любое время, когда хотите getSupportFragmentManager.иерархия - это активность -> фрагмент. фрагмент не способен напрямую вызывать getSupportFragmentManger, но Activity может. Таким образом, вы можете использовать getActivity для вызова текущей активности, в которой находится фрагмент, и получить
getSupportFragmentManager()
источник
Моя родительская активность расширяет AppCompatActivity, поэтому мне пришлось преобразовать свой контекст в AppCompatActivity, а не просто Activity.
например.
источник
((AppCompatActivity) mContext)
часть была ТОЧНО то , что я искал. Спасибо!сделай это в своем фрагменте
источник
getActivity().getFragmentManager()
Это сработало или у меня.Также посмотрите на здесь.
источник
источник
в Java вы можете заменить на
в kotlin, сделайте это простым
надеюсь, это поможет :)
источник
Следующий код помогает мне
источник
Вы можете использовать childFragmentManager внутри Fragments.
источник
Вы можете просто получить доступ как
а затем использовать
источник
Некоторый код Kotlin для использования supportFragmentManager внутри фрагмента.
источник
getSupportFragmentManager()
используется, когда вы находитесь в активности и хотите получить фрагмент, но во фрагменте вы можете получить доступс помощью другого метода с именем
getFragmentMangaer()
работает так же, какgetSupportFragmentManager()
и вы можете использовать его, как вы использовали для:источник
Простой новый способ сделать это в kotlin
источник
Попробуй это:
источник