我的应用程序中有两个Google地图,我以相同的方式实现了它。一个是工作,一个不工作。后者看起来像一个图像,我无法与它互动。我可以添加标记并移动相机,但是当我点击标记时我无法显示信息窗口,我无法移动它,放大和缩小。它看起来像一个图像,一个预览。
以下是代码:
public class MapFragment extends Fragment implements OnMapReadyCallback{
private GoogleMap mMap;
private static Double latitude;
private static Double longitude;
private static String title;
public static MapFragment newInstance(Double mLatitude, Double mLongitude, String mTitle) {
latitude=mLatitude;
longitude=mLongitude;
title=mTitle;
MapFragment fragment = new MapFragment();
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_map, container, false);
SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager()
.findFragmentById(R.id.map_details);
mapFragment.getMapAsync(this);
return view;
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.getUiSettings().setAllGesturesEnabled(true);
mMap.getUiSettings().setMapToolbarEnabled(false);
mMap.addMarker(new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.drawable.location_icon))
.position(new LatLng(latitude, longitude))
.title(title));
CameraPosition cameraPosition = new CameraPosition.Builder().target(new LatLng(latitude,longitude)).zoom(12f).build();
CameraUpdate cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition);
mMap.moveCamera(cameraUpdate);
}
public interface OnMapFragmentInteractionListener {
void onMapFragmentInteraction(Uri uri);
}
@Override
public void onResume() {
super.onResume();
}
@Override
public void onPause() {
super.onPause();
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public void onLowMemory() {
super.onLowMemory();
}
}
答案 0 :(得分:1)
你应该看看XML。有liteMode
,当它设置为true时,它完全符合您的描述。
<com.google.android.gms.maps.MapView
android:id="@+id/row_map"
android:layout_width="match_parent"
android:layout_height="match_parent"
map:liteMode="true"
map:mapType="none" />
此处查看documentation
答案 1 :(得分:0)
我只是猜测,但在你发布的代码中,我发现了一个错误。当您尝试使用MapFragment时,确保必须在该位置检查导入。正如我所说,我想在一个地方,它是从谷歌pacage和你的班级另一个导入。问题是你在这里发布的MapFragment不是google MapFragment,因为你从简单的Fragment中获取它。要确保将您自己的MapFragment重命名为CustomMapFragment并尝试从MapFragment中扩展,或者只使用它而不进行自定义。