您可以扩展 SupportMapFragment 并将您的地图相关逻辑放在那里(例如:标记管理)
public class CustomMapFragment extends SupportMapFragment {
private GoogleMap googleMap;
private List<Marker> markers = new ArrayList<Marker>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
googleMap = getMap();
ViewUtils.initializeMargin(getActivity(), view);
return view;
}
private void addMarkerToMap(LatLng latLng) {
Marker marker = googleMap.addMarker(new MarkerOptions().position(latLng)
.title("title")
.snippet("snippet"));
markers.add(marker);
}
/**
* Adds a list of markers to the map.
*/
public void addMarkersToMap(List<LatLng> latLngs) {
for (LatLng latLng : latLngs) {
addMarkerToMap(latLng);
}
}
/**
* Clears all markers from the map.
*/
public void clearMarkers() {
googleMap.clear();
markers.clear();
}
}
然后,您可以在布局中添加该自定义 MapFragment(以及其他片段)
<fragment
android:id="@+id/workout"
android:name="com.foobar.WorkoutFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<fragment
android:id="@+id/map"
android:name="com.foobar.CustomMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
这样,您就可以将纯地图相关代码与代码库的其余部分分开。