0

多くの場所のピンを含むマップビューがあり、各ピンはその上にバルーンを表示できます。しかし、別のピンを押すと、古いバルーンは自動的に閉じないので、他のバルーンが表示される前に毎回バルーンをクリアしたい

(BalloonItemizedOverlay を拡張します)

助けてください、ありがとう。

4

3 に答える 3

2

次のコードは、マップからすべてのBalloonOverlayItemsを削除します。

  MapView.removeViews(0, MapView.getChildCount());

これは、MapView.getOverlays()。clear()(通常のオーバーレイに使用)と同等です。上記のコードは、バルーンオーバーレイを含むマップで機能します。

于 2012-04-07T15:45:37.950 に答える
1

BallonItemizerOverlay.javaから

        /**
         * Sets the visibility of this overlay's balloon view to GONE. 
         */
        private void hideBalloon() {
                if (balloonView != null) {
                        balloonView.setVisibility(View.GONE);
                }
        }

        /**
         * Hides the balloon view for any other BalloonItemizedOverlay instances
         * that might be present on the MapView.
         * 
         * @param overlays - list of overlays (including this) on the MapView.
         */
        private void hideOtherBalloons(List<Overlay> overlays) {

                for (Overlay overlay : overlays) {
                        if (overlay instanceof BalloonItemizedOverlay<?> && overlay != this) {
                                ((BalloonItemizedOverlay<?>) overlay).hideBalloon();
                        }
                }

        }
于 2011-10-06T10:07:16.997 に答える
0

手遅れかもしれませんが、今日も同じ問題に直面していたと思います。

を使用してアイテムを削除するmapView.getOverlays().clear()と、すべてのアイテムが削除されます。しかし、メソッド 'createAndDisplayBalloonOverlay' をBalloonItemizedOverlay.java見ると、行が表示されるmapView.addView(balloonView, params);のでmapView、バルーンの参照を子として保持します。それがあなたのピンがなくなった理由ですが、バルーン1はまだ表示されています.

BalloonOverlayView簡単な修正は、削除されたアイテムの後に methode を使用して のすべてのインスタンスを削除することmapView.removeViewAt()です。また、実装によっては、現在表示されているバルーンを保持する必要がある場合があります。

于 2012-02-23T22:12:33.683 に答える