0

googleMap v2 で奇妙なバグを発見しました。オーバーライド Marker onClick メソッド内のマーカー位置に Camrea をアニメーション化しようとすると、機能しません。このシナリオでは moveCamera のみが機能するようです。カメラをランダムな位置にアニメーション化しようとしても、まだ機能しません。

@Override
public boolean onMarkerClick(Marker mmarker) {

    if(mmarker.getSnippet().equals("CITY")){

        map.animateCamera(CameraUpdateFactory.newLatLngZoom(mmarker.getPosition(), (float) 11.20));
        //updateMapMarkers(0);
    }

    return false;
}
4

1 に答える 1

1

これはデフォルトの動作です。なぜ再定義するのですか?

falseから戻った場合onMarkerClick、Maps API はデフォルトの動作 (マーカーへのパン) を実行します。

trueその動作をオーバーライドしている場合、または発生させたくない場合は、戻りたいと思うでしょう。

詳細については、ドキュメントをOnMarkerClickListener確認してください。

そのような条件でのみアニメーション化する場合は、次のようにするとより簡潔になります。

@Override
public boolean onMarkerClick(Marker mmarker) {
    return !mmarker.getSnippet().equals("CITY");
}

これにより、スニペットが「CITY」の場合にのみマップがパンされます。への呼び出しを逆にすることもできますequals()

于 2013-08-14T09:45:08.077 に答える