Google doc非常清楚如何在精简模式下使用showInfoWindow标记:
如果设置标记的title(),则默认信息窗口将为 用户点按标记时出现。 您可以显示信息窗口 通过在标记上调用showInfoWindow()以编程方式。 你可以 还可以通过InfoWindowAdapter界面创建自定义信息窗口。 https://developers.google.com/maps/documentation/android/lite
以下是我的代码的一部分:
@Override
public void onMapReady(GoogleMap googleMap) {
googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
}
});
googleMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {
@Override
public void onMapLongClick(LatLng latLng) {
}
});
googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
marker.showInfoWindow();
return true;
}
});
BitmapDescriptor skierIcon = BitmapDescriptorFactory.fromResource(R.drawable.skiericon);
markers.add(googleMap.addMarker(new MarkerOptions()
.position(new LatLng(mountain_latitude+0.01, mountain_longitude+0.01))
.title("Bob")
.visible(true)
.icon(skierIcon)));
markers.add(googleMap.addMarker(new MarkerOptions()
.position(new LatLng(mountain_latitude-0.01, mountain_longitude-0.01))
.title("Alice")
.icon(skierIcon)));
for(Marker marker: this.markers){
marker.showInfoWindow();
boolean ret = marker.isInfoWindowShown();
}
}
我的问题是marker.isInfoWindowShown()总是返回false。
以下是我的称呼方式
fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.map, mapFragment);
fragmentTransaction.commit();
mapFragment.getMapAsync(this);
答案 0 :(得分:0)
请记住,地图的渲染是一个异步过程,您可以在onMapReady()
内创建标记,然后执行此方法,然后检查您的标记是否正在显示。