6

ユーザーの現在の場所を他のマーカーの上に表示したいので、いくつかのオーバーレイとそれらの上にサブクラスMapViewがあります。MyLocationOverlay

マーカーのイベントを処理してonTap、タップされたマーカーの情報を含むパネルを表示します。マーカーの外側 (位置マーカーであっても) をタップすると、パネルは非表示になります。

マーカーまたは空の場所をクリックすると、パネルは期待どおりに表示または非表示になりますが、場所マーカーをクリックしても何も起こりません (場所マーカーが別のマーカーの上にある場合、情報は表示されず、それは外にあり、情報はそれが隠れていないことを示しています)。

ドキュメントに記載されているように、関数MyLocationOverlayをオーバーライドdispatchTap()して false を返すようにしました。

戻り値: このタップが処理された場合は true。他のオーバーレイに送信する必要がある場合は false

念のため true を返そうとしましたが、何も機能しません...

onTapイベントを他のオーバーレイに伝播する方法を知っている人はいますか?

4

1 に答える 1

1

「Android 2.0 以降で修正されました。これは一部の電話の既知の問題でした」

From -複数のレイヤーでイベントを伝播する android google maps

「MapView に配置したオーバーレイ アイテムが表示されている場合、オーバーレイ アイテムのいずれかをタップすると、onTap() がトリガーされます。ユーザーがタップした場所に関係なく、onTap(GeoPoint ポイント、MapView ビュー) は常にトリガーされます。したがって、 、それをオーバーライドして、トリガーされているかどうかを確認できます。オーバーレイ項目がクリックされた場合、onTap(int i) はその後に実行されます。"

から - https://stackoverflow.com/questions/6680387/ontap-event-on-map-is-not-fired

于 2011-12-23T16:57:55.877 に答える