【问题标题】:onInfoWindowClick don't work. But Long click works fineonInfoWindowClick 不起作用。但是长按效果很好
【发布时间】:2020-05-24 15:52:38
【问题描述】:

我在地图中添加了两个监听器:

mGoogleMap.setOnInfoWindowLongClickListener(new GoogleMap.OnInfoWindowLongClickListener() {
    @Override
    public void onInfoWindowLongClick(Marker marker) {
        Log.d(TAG, marker.getTitle() + " Long click");
    }
});

mGoogleMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
    @Override
    public void onInfoWindowClick(Marker marker) {
        Log.d(TAG, marker.getTitle() + " Just a simple click");
    }
});

根据 logcat 长点击可以正常工作,但普通点击不行

2020-05-24 22:49:51.838 7940-7940/com.edwin.findme D/UserListFragment: test Long click
2020-05-24 22:49:53.309 7940-7940/com.edwin.findme D/UserListFragment: test Long click

你知道为什么会这样吗?

UPD:实际上我只需要点击监听器,但它不起作用,所以我添加了长点击监听器进行测试,它工作正常。

【问题讨论】:

  • 试图复制您的问题,但是,在我的情况下,长点击和普通点击监听器都有效。我刚刚在onMapReady() 下添加了这些方法。您能否提供一个 small reproducible sample 来说明您的问题?
  • Nvm,我找到了解决方案。新版本的 android-maps-utils 需要使用 MarkerManager.Collection 来设置监听器。 github.com/googlemaps/…

标签: android google-maps google-maps-markers onclicklistener


【解决方案1】:

新版本的 android-maps-utils(在我的例子中是 1.3.1)需要使用 MarkerManager.Collection 来设置监听器。

资源: https://github.com/googlemaps/android-maps-utils#adding-a-custom-info-window

新的

CustomInfoWindowAdapter adapter = // ...
OnInfoWindowClickListener listener = // ...

// Create a new Collection from a MarkerManager
MarkerManager markerManager = // ...
MarkerManager.Collection collection = markerManager.newCollection();

// Set InfoWindowAdapter and OnInfoWindowClickListener
collection.setInfoWindowAdapter(adapter);
collection.setOnInfoWindowClickListener(listener);

// Alternatively, if you are using clustering
ClusterManager<ClusterItem> clusterManager = // ...
MarkerManager.Collection markerCollection = markerCollection.setInfoWindowAdapter(adapter);
markerCollection.setOnInfoWindowClickListener(listener);

CustomInfoWindowAdapter adapter = // ...
OnInfoWindowClickListener listener = // ...
googleMap.setInfoWindowAdapter(adapter);
googleMap.setOnInfoWindowClickListener(listener);

【讨论】:

  • 你是个天才伴侣
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 2022-09-27
  • 2015-08-29
  • 1970-01-01
相关资源
最近更新 更多