У меня есть активность, в которой размещаются два фрагмента. Один фрагмент предоставляет некоторую информацию пользователю в различных полях. В другом фрагменте должна отображаться Карта.Extend MapFragment Android
Для фрагмента, на котором размещена карта, мне нужно добавить пользовательскую логику для отображения маркеров и нескольких других вещей, которые я хотел бы использовать в других местах приложения. Что является лучшим способом, чтобы создать карту без определения фрагмента в XML, как:
<fragment
class="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Спасибо, Натан
Edit:
Я теперь с помощью вложенных фрагментов, не уверен, что лучший способ справиться с этим? Мой MapFragment Сейчас:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />
</LinearLayout>
и код фрагментов:
public class ViewCurrentMapFragment extends Fragment implements View.OnClickListener {
public static final String TAG = "MAP_FRAGMENT";
private GoogleMap map;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_view_current_map, container, false);
return rootView;
}
private void getCurrentMarkers() {
// Getting reference to the SupportMapFragment of activity_main.xml
SupportMapFragment smf = ((SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.map));
map = smf.getMap();
}
@Override
public void onClick(View v) {
}
@Override
public void onResume() {
super.onResume();
getCurrentMarkers();
}
}
Проблема, которую я имею теперь, что smf.getMap() возвращает нуль. Есть идеи?
Edit2:
Понял работать путем изменения:
com.google.android.gms.maps.MapFragment
to
com.google.android.gms.maps.SupportMapFragment