我已经搜索了很长时间并尝试了与此相关的所有内容,但我没有成功。欢迎任何相关的答案。
我在BalloonItemizedOverlay
中使用了以下代码protected void hideBalloon()
{
if (balloonView != null)
{
balloonView.setVisibility(View.GONE);
}
}
private void hideOtherBalloons(List<Overlay> overlays)
{
for (Overlay overlay : overlays)
{
if (overlay instanceof BalloonItemizedOverlay<?> && overlay != this)
{
((BalloonItemizedOverlay<?>) overlay).hideBalloon();
}
}
}
每当我设置mapview时,我都会调用
mapView.getOverlays().clear();
mapView.invalidate();
但是我第一次点击markerpin,我正确地得到了balloonView。当我回到列表并再次使用不同的标记值返回相同的mapview时,我将打开balloonView,当我再次点击markerpin时,我得到正确的值,但在旧的BalloonView上重叠。
如何在将新叠加层设置到mapView之前隐藏所有balloonView。 我想为同一个Activity中不同位置的不同值重用相同的mapView。
答案 0 :(得分:1)
我已经按照下面的说明完成了它,并且它已成功运行。您必须根据您的要求编辑此代码: -
public class CustomItemizedOverlay extends ItemizedOverlay<CustomOverlayItem>{
private ArrayList<CustomOverlayItem> mOverlays = new ArrayList<CustomOverlayItem>();
public void addDeleteMarker{
CustomOverlayItem overlaySosItem;
if(mOverlays.size()!=0){
for(i=0;i<mOverlays.size();i++){
//---------To remove (Edit index position according to your logic)----------
mOverlays.remove(i);
//---------To Add Overlay-----------
GeoPoint geoPoint = new GeoPoint((int)(yourlatitude *1e6),(int)(yourlongitude*1e6));
overlaySosItem = new CustomOverlayItem(geoPoint, "", "");
mOverlays.add(overlaySosItem);
}
}
}
}
答案 1 :(得分:0)