2016-04-27 4 views

Antwort

1

Gefunden Antwort selbst.

Sie müssen nur eine statische Methode erstellen, die mit @BindingAdapter annotiert ist. Etwas wie:

@BindingAdapter("app:latLong") 
public static void bindLocationToMap(MapView mapView, LatLng latLong) { 
    CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(latLong, 10); 
    mapView.animateCamera(cameraUpdate); 
} 

Und Verwendung Attribut oben definiert, in dem Layout:

... 
<com.google.android.gms.maps.MapView android:id="@+id/mapview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:location="@{latLong} /> 
... 
+0

Aber ist das '' com.google.android.gms.maps.MapView der richtige Weg, um die Karten zu benutzen? Ich meine, jede Dokumentation sagt dir, dass du ein Fragment verwenden sollst, und ich frage mich, ob dies eine veraltete Methode ist. – jturolla

+0

Ich bin neugierig, was jturolla auch fragen. Aber ich verstehe, dass Sie @BindingAdapter auf die gleiche Weise mit dem neuen Weg verwenden können? Ich fange gerade mit mvvm an, also bin ich ein wenig verwirrt, wer mit den Kartenaktualisierungen umgehen sollte. – leojg

+0

Soweit ich weiß, ist es nicht verboten, MapView selbst zu benutzen (was MapFragment selbst tut), aber Sie müssen nur darauf achten, Lebenszyklus-Ereignisse an den MapView zu liefern – Ivan

Verwandte Themen