【问题标题】:MapView onCLick Event ListenerMapView onCick 事件监听器
【发布时间】:2014-02-11 11:31:06
【问题描述】:

所以我一直在尝试检测MapView 的点击事件,以便通过点击启动方法。

尝试标准onClickListener 或onTouch 的任何变体都不好。

我不想添加覆盖以“捕捉”地图特定部分的点击。 我希望地图继续响应拖动、缩放等。

任何帮助将不胜感激。

【问题讨论】:

  • 使用 onTouch 方法和 GestureDetector 并使用 singleTaPconfirmed() 并离开其他人。
  • 因为 MapView 实现使用 Surface 它捕获所有触摸事件。正如我写的那样,标准的 onTouch 是行不通的。

标签: android android-mapview


【解决方案1】:

所以,显然解决方案非常简单。 我猜它是在最后一个支持库之一中添加的。 GoogleMap 现在支持 onMapClick。

mMapView.getMap().setOnMapClickListener(new OnMapClickListener()
                {
                    @Override
                    public void onMapClick(LatLng arg0)
                    {
                        android.util.Log.i("onMapClick", "Horray!");
                    }
                });

【讨论】:

  • 谢谢。简单但有用的解决方案! :)
【解决方案2】:

在新版本的 Google Play 服务中,您应该在地图准备好后,在onMapReady(GoogleMap map); 回调中调用该方法。

 @Override
public void onMapReady(GoogleMap googleMap) {
    googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener()
    {
        @Override
        public void onMapClick(LatLng arg0)
        {
            android.util.Log.i("onMapClick", "Horray!");
        }
    });
}

【讨论】:

    【解决方案3】:
    public class MapView  implements OnMapReadyCallback, GoogleMap.OnMarkerClickListener {
    
       @Override
       public boolean onMarkerClick(Marker marker) {
           println("click marker");
       }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 2014-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-21
      相关资源
      最近更新 更多