MyLocationOverlay dispatchTap() 不传播
Posted
技术标签:
【中文标题】MyLocationOverlay dispatchTap() 不传播【英文标题】:MyLocationOverlay dispatchTap() doesn't propagate 【发布时间】:2011-06-22 06:04:52 【问题描述】:我有一个MapView
,上面有一些叠加层和MyLocationOverlay
的子类,因为我希望用户当前位置显示在其他标记之上。
我正在处理标记的onTap
事件,以显示带有点击标记信息的面板,如果在标记外部(即使在位置标记中)点击,面板应该隐藏。
如果我点击标记或空白处一切正常,面板会按预期显示或隐藏,但如果我点击位置标记,则没有任何反应(如果位置标记位于另一个标记上方,则信息不会显示,如果它在外面并且信息显示它不会隐藏)。
在我的MyLocationOverlay
中,我覆盖了dispatchTap()
函数,使其返回false,如docs 所述:
返回:如果此点击已处理,则返回 True; 如果应该发送到其他叠加层则为 false。
但仍然不起作用,即使我尝试返回 true 以防万一,但什么都没有......
有人知道如何将onTap
事件传播到其他叠加层吗?
【问题讨论】:
dispatchTap 真的被调用了吗? (默认情况下它应该返回 false)。您是否尝试过覆盖 public boolean onTouchEvent(android.view.MotionEvent e, MapView mapView) 以查看是否被调用? 【参考方案1】:“自 android 2.0 以来已修复,这是某些手机的已知问题”
来自 - Propagate events in several layers android google maps
“如果你看到你放在 MapView 上的覆盖项目,当你点击任何覆盖项目时,你的 onTap() 将被触发。无论用户在哪里,都会触发 onTap(GeoPoint point, MapView view)点击。因此,您可以覆盖它以查看它是否被触发。在单击覆盖项的情况下,onTap(int i) 将在它之后运行。"
发件人 - https://***.com/questions/6680387/ontap-event-on-map-is-not-fired
【讨论】:
以上是关于MyLocationOverlay dispatchTap() 不传播的主要内容,如果未能解决你的问题,请参考以下文章
MyLocationOverlay dispatchTap() 不传播
如何为 MyLocationOverlay 中的“你在这里”点使用自定义位图?