Я знаю, что возникла проблема с использованием вложенного фрагмента. Но мое приложение было разработано для работы с фрагментами, и если я буду использовать активность для карты, мои функции приведения будут иметь ошибку.
Я хотел бы попросить у вас помощи в том, как этого добиться. Я искал в Интернете, но я не мог найти лучшее решение.
Я пробовал этот код:
private void setUpMapIfNeeded() {
// Do a null check to confirm that we have not already instantiated the map.
if (mMap == null) {
// Try to obtain the map from the SupportMapFragment.
mMap = ((SupportMapFragment) myFragmentActivity.getSupportFragmentManager().findFragmentById(R.id.map_con))
.getMap();
// Check if we were successful in obtaining the map.
if (mMap != null) {
mMap.setMyLocationEnabled(true);
}
}
}
это дало бы мне повторяющуюся ошибку, потому что R.id.map_con является фрагментом внутри моего фрагмента.
Итак, я ищу обходной путь, на этот раз R.id.map_con — это макет кадра, и во время выполнения я создал для него SupportMapFragment.
SupportMapFragment mSupportMapFragment = new SupportMapFragment();
myFragmentActivity.getSupportFragmentManager().beginTransaction()
.replace(R.id.map_con, mSupportMapFragment).commit();
хотя это не дает мне дубликат каждый раз, когда я закрываю и открываю фрагмент. но моя ошибка в том, что mSupportMapFragment.getMap всегда равен нулю. Я не понимаю, почему он равен нулю?
mMap = mSupportMapFragment.newInstance().getMap();
if (mMap != null){
Log.e("ReportFragment","mMap is not empty");
}else{
Log.e("ReportFragment","mMap is empty");
}
Я был бы очень признателен за любой вклад от вас, ребята, или у вас есть другая работа, но все еще в этом процессе, т.е. Фрагмент внутри фрагмента
Спасибо
chkm8