2016-08-16 8 views
2

У меня есть Google Maps V2 и в моем setUpMap() метод Я прилагаю GoogleMap infoWindowAdapter так:Android- крепления InfoWindowAdapter к GoogleMap с несколькими ClusterManagers

ClusterManager<OffersMarker> rentClusterManager = new ClusterManager<OffersMarker>(this, gmap); 
gmap.setInfoWindowAdapter(rentClusterManager.getMarkerManager()); 

Существует больше кода, но дело в том, что это работает, и я могу видеть информационное окно, когда я нажимаю на маркер.

Поскольку у меня есть два ClusterManagers ты у меня есть проблема:

ClusterManager<OffersMarker> rentClusterManager = new ClusterManager<OffersMarker>(this, gmap); 
ClusterManager<OffersMarker> saleClusterManager = new ClusterManager<OffersMarker>(this, gmap); 

gmap.setInfoWindowAdapter(rentClusterManager.getMarkerManager()); //<-- THIS DOESN'T WORK 
gmap.setInfoWindowAdapter(saleClusterManager.getMarkerManager()); //<-- ONLY THIS WORKS 

Мой вопрос, как я могу прикрепить несколько ClusterManager.getMarkerManager() для установки infoWindowAdapter?

С слушателями я использовал MultiListener, но я не нашел MultiAdapter или что-то в этом роде.

Спасибо!

ответ

1

Вы можете установить только InfoWindowAdapter в GoogleMap. В вашем случае оно переписывается saleClusterManager.getMarkerManager()

Но в качестве обходного пути вы можете перенаправлять вызовы соответствующим менеджерам кластера.

gmap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() 
{ 
    @Override 
    public View getInfoWindow(Marker marker) 
    { 
     View view = rentClusterManager.getMarkerManager().getInfoWindow(marker); 
     if(view == null) 
      view = saleClusterManager.getMarkerManager().getInfoWindow(marker); 
     return view; 
    } 

    @Override 
    public View getInfoContents(Marker marker) 
    { 
     View view = rentClusterManager.getMarkerManager().getInfoContents(marker); 
     if(view == null) 
      view = saleClusterManager.getMarkerManager().getInfoContents(marker); 
     return view; 
    } 
}); 
+0

По какой-то причине просмотр никогда не является нулевым для меня, поэтому один и тот же адаптер продолжает называться ... – gcolucci

 Смежные вопросы

  • Нет связанных вопросов^_^