2017-10-29 13 views
0

私はgoogle's android Map Utilsを使用しています。これは情報ウィンドウを生成するために使用するコードです。InfoWindowAdapterを使用したClusterManagerが機能しません

/* 
    * Set the Google Marker Cluster Manager. 
    */ 
    mClusterManager = new ClusterManager<>(this, mGoogleMap); 

    mGoogleMap.setOnCameraIdleListener(mClusterManager); 
    mGoogleMap.setInfoWindowAdapter(mClusterManager.getMarkerManager()); 
    mGoogleMap.setOnMarkerClickListener(mClusterManager.getMarkerManager()); 
    mGoogleMap.setOnInfoWindowClickListener(mClusterManager); 

    mGoogleMap.setInfoWindowAdapter(mPlaceInfoWindowAdapter); 

    mGoogleMap.setOnMarkerClickListener(mClusterManager); 

    GoogleMap.InfoWindowAdapter infoWindowAdapter = new GoogleMap.InfoWindowAdapter() 
    { 
     @Override 
     public View getInfoWindow(Marker marker) 
     { 
      Toast.makeText(MainActivity.this, "getInfoWIndow", Toast.LENGTH_SHORT).show(); 
      return null; 
     } 

     @Override 
     public View getInfoContents(Marker marker) 
     { 
      View v = LayoutInflater.from(MainActivity.this).inflate(R.layout.map_infowindow_layout, null); 
      Toast.makeText(MainActivity.this, "getInfoContents", Toast.LENGTH_SHORT).show(); 
      return v; 
     } 
    }; 

    mClusterManager.getMarkerCollection().setOnInfoWindowAdapter(infoWindowAdapter); 

    mClusterManager.getClusterMarkerCollection().setOnInfoWindowAdapter(infoWindowAdapter); 

    mClusterManager.setOnClusterClickListener(new ClusterManager.OnClusterClickListener<MapMarker>() 
    { 
     @Override 
     public boolean onClusterClick(Cluster<MapMarker> cluster) 
     { 
      Toast.makeText(MainActivity.this, "cluster click", Toast.LENGTH_SHORT).show(); 
      return false; 
     } 
    }); 

    mClusterManager.setOnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<MapMarker>() 
    { 
     @Override 
     public boolean onClusterItemClick(MapMarker mapMarker) 
     { 
      Toast.makeText(MainActivity.this, "cluster item click", Toast.LENGTH_SHORT).show(); 
      return false; 
     } 
    }); 

以下は、地図上のマーカーをクリックしたときの結果のイメージです。 InfoWindowAdapterのメソッドは呼び出されません。

Code result

は、私はまた、 mGoogleMap.setOnMarkerClickListener(mClusterManager)を設定しようとしたが、それはどちらか動作しません。私は何か間違っているのですか、これはGoogleのコードのバグですか?

答えて

0

onClusterItemClickメソッドからfalseを返すことでこれを解決しました。 trueに設定すると、情報ウィンドウは表示されません。

関連する問題