2011-02-06 63 views
6

我有一個MapView帶有一些覆蓋和MyLocationOverlay的子類,因爲我希望用戶當前位置顯示在其他標記之上。MyLocationOverlay dispatchTap()不會傳播

我正在處理標記的onTap事件,以顯示帶有點擊標記信息的面板,如果在標記外(即使在位置標記中)點擊,面板也應該隱藏。

如果我點擊一個標記或在一個空的地方一切都很好,面板顯示或隱藏如預期的,但如果我點擊位置標記沒有任何反應(如果位置標記是另一個標記信息doesn' t顯示,如果它在外面,並且信息顯示它不隱藏)。

在我MyLocationOverlay我overrided dispatchTap()功能使它返回false在docs說:

返回:如果此絲錐加工; 如果應將其發送到其他覆蓋,則爲false。

,但仍然無法正常工作,甚至我試圖返回true,以防萬一,但沒有...

任何人知道如何在onTap事件傳播到其他的覆蓋?

+0

dispatchTap實際上是否被調用? (它應該默認返回false)。你有沒有嘗試覆蓋公共布爾onTouchEvent(android.view.MotionEvent e,MapView的mapView),看看是否被調用? – Dori 2011-12-22 15:27:07

回答

1

「由於Android 2.0固定的,它是某些手機的一個已知的問題」

從 - Propagate events in several layers android google maps

「如果你看到你把你的MapView覆蓋的項目,您中的onTap()會當你點擊任何覆蓋項目時觸發onTap(GeoPoint point,MapView視圖)總是觸發,而不管用戶在哪裏點擊,因此你可以覆蓋它看它是否被觸發,onTap(int i)會在它後面運行在重疊項目被點擊的情況下「。

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