Erstellen von OnDragListener für Google Map v2 Fragment

8

Ich versuche, einen OnDrag-Listener für ein Google-Map-Fragment einzurichten, kann das Drag-Ereignis jedoch nicht auslösen. Da die Karte keine Drag-Ereignisse direkt unterstützt, versuche ich, einen Drag-Listener für die View zu implementieren. Ich kenne das onMarkerDrag-Ereignis, aber das tut mir nicht gut, da ich nicht versuche, Marker zu verschieben.

Der Grund für das Überfüllen von Karten-Drag-Events ist zweifach:

Zuerst, um festzustellen, ob der Benutzer die Karte verschoben hat. Wenn dies nicht der Fall ist, möchte ich ihren Standort auf dem Bildschirm behalten und zu ihrem Standort animieren, wenn sie nicht auf der Karte ist. Wenn sie die Karte geschwenkt haben, nehme ich an, dass sie wissen, was sie sehen möchten und erzwingen Sie den Ort auf dem Bildschirm. (Dies scheint etwas zu sein, das in der API enthalten sein sollte)

Der zweite Grund für das Überfüllen besteht darin, dass Benutzer Linien und Polygone auf der Karte zeichnen können. Ich kann dies mit onTap-Ereignissen tun (Punkte hinzufügen), aber ich möchte sie auch freihändig lassen können.

Mein Code sieht so aus:

mainActivity:

%Vor%

Der Listener:

%Vor%

Die Karte funktioniert gut. Der Listener wird instanziiert, aber mein onDrag-Ereignis wird nie ausgelöst. Irgendwelche Ideen?

    
Tim 20.06.2013, 20:27
quelle

3 Antworten

18

1) Wrapperklasse erstellen:

%Vor%

2) Erstellen Sie eine Unterklasse der MapFragment-Klasse:

%Vor%

3.1) Schließlich in Ihrer Aktivität:

%Vor%

3.2) ... und in Ihrem Layout:

%Vor%     
Aleh 31.08.2013 14:54
quelle
5

Um den Drag-Event-Listener ein Fragment zu erhalten, das googleMap enthält, kann man die Methode google verwenden. Wir können die Zielposition der Karte erhalten.

%Vor%     
Nancy Y 26.06.2017 06:50
quelle
0

Ich habe etwas ähnliches mit einem BehaviorSubject getan, um festzustellen, ob die Karte schmutzig war (vom Benutzer verschoben)

%Vor%     
dazza5000 05.12.2017 21:46
quelle