Tôi hiện đang hiển thị một điểm đánh dấu duy nhất. Khi chạm vào cửa sổ thông tin sẽ KHÔNG hiển thị. Tôi đã xác nhận rằng tiêu đề thực sự được đặt trong điểm đánh dấu.Bản đồ v2 Cửa sổ thông tin không hiển thị khi điểm đánh dấu được chạm vào, nhưng sau khi chạm vào Cửa sổ thông tin ẩn
Tuy nhiên, nếu tôi chạm vào khu vực phía trên điểm đánh dấu có cửa sổ thông tin, tôi sẽ nhận được sự kiện OnInfoWindowClickListener
. Khi điều này xảy ra, tôi mở một hoạt động khác và khi tôi trở lại từ hoạt động này, cửa sổ thông tin được hiển thị (thực ra, tôi có thể thấy nó được hiển thị một giây trước khi hoạt động bắt đầu).
Bất kỳ mẹo nào về cách tôi có thể hiển thị cửa sổ thông tin khi điểm đánh dấu được chạm vào?
Đây là mã có liên quan của tôi:
// .... more code up here
final GoogleMap map = mMapFragment.getMap();
if (map == null) {
mReloadWhenReady = true;
return;
}
map.clear();
final TileProviderMapsV2 prov = new TileProviderMapsV2(mMapFragment.getActivity());
map.addTileOverlay(new TileOverlayOptions().tileProvider(prov));
final LatLngBounds.Builder bounds = new LatLngBounds.Builder();
final Map<Marker, MyNode> markerMap = J.newHashMap();
mNodes.clear();
mNodes.addAll(nodes);
L.p("Maps v2 nodes: %d. ", mNodes.size());
for (MyNode node : mNodes) {
final LatLng latlng = new LatLng(node.getLat(), node.getLon());
final MarkerOptions opts = new MarkerOptions()
.position(latlng)
.title("Title is " + node.getName())
.icon(BitmapDescriptorFactory
.fromResource(com.mydomain.droid.R.drawable.pin_blue));
final Marker m = map.addMarker(opts);
markerMap.put(m, node);
bounds.include(latlng);
}
map.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
final MyNode node = markerMap.get(marker);
L.p("Maps v2 Clicked Node: %s/%d. ", node.getName(),node.getId());
ViewNode.Launchr.setNodeId(node.getId()).launch(mMapFragment.getActivity());
}
});
Nếu tôi thêm m.showInfoWindow();
bên trong vòng lặp for marker sẽ hiển thị cửa sổ thông tin, tuy nhiên trong tương lai sẽ có đánh dấu nhiều hơn, do đó yêu cầu là chỉ hiển thị cửa sổ thông tin khi điểm đánh dấu được chạm vào.
Đối với mục đích gỡ lỗi tôi đã thêm đoạn mã sau, và tôi nhìn thấy tin nhắn trong các bản ghi cùng với các tiêu đề chính xác, nhưng tôi không nhận được cửa sổ thông tin:
map.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
L.p("marker clicked " + marker.getTitle());
marker.showInfoWindow();
return false;
}
});
Cảm ơn!
bạn đã thiết lập một ' OnCameraChangeListener'? Nếu vậy, bạn có thể đăng mã 'onCameraChange' của mình không? – antonio