Umgang mit OnTouchEvent in einer Ansicht, die auch auf OnTouchEvent reagiert (früher in Osmdroid 3.0.2 funktioniert)

StackOverflow https://stackoverflow.com/questions/6819543

  •  26-10-2019
  •  | 
  •  

Frage

Ich verwende derzeit Osmdroid Jar 3.0.1 und habe eine Mapview in einem ""Dragbarer Raum"(Eine Ansicht, die Sie zwischen Bildschirmen wischen können.

Dies funktionierte früher in 3.0.1 gut, aber ich habe es in Osmdroid 3.0.4 ausprobiert, und es scheint nur für vertikale Bewegungen zu funktionieren (was ich vermute, mit einer Touch -Slop -Einstellung zusammenhängt).

Hier ist der Code aus meiner schleppbaren Speicherplatzansicht.

@Override
public boolean onTouchEvent(MotionEvent event) {
    // Check if the current space is the Map space and we are over the map
    // difference is the Y value between the top and bottom of the map area.
    if (this.mCurrentScreen == 1
                    && event.getY() >= topY && event.getY() <= difference){
            Log.d(TAG, "touch received inside Map Area");
            // Pass the event directly to the mapView.
            return mOsmv.onTouchEvent(event);
    }
    Log.d(TAG, "touch received outside Map Area");
    return super.onTouchEvent(event);
}

Obwohl dies böse ist (die Ansicht muss eine Instanz der Karte übergeben werden), funktionierte sie in den Versionen 3.0.1 und 3.0.2 gut. Seit 3.0.3 funktioniert es jedoch nicht mehr.

Gibt es jetzt eine bessere Möglichkeit, Touch -Events an die Osmdroid -Karte weiterzugeben?

Ich habe ein Demo -Projekt, das dieses Problem veranschaulicht. Das vollständige Eclipse -Projekt ist auf Github.

Sie können den Build -Pfad ändern, um ein 3.0.1 oder 3.0.2 Glas zu verwenden, und die Karte scrollt korrekt im größeren Raum, wechselt jedoch auf 3.0.3 oder 3.0.4, und jede seitliche Bewegung wird ignoriert.

Jede Anleitung wäre sehr geschätzt.

PS, dies ist ein Kreuzposten aus der Osmdroid -Liste. Ich hoffe, es gibt hier noch ein paar Leser.

War es hilfreich?

Lösung

Das Problem war, dass mapView.ontouchEvent in mapView.DispatchTouchEvent zwischen den Versionen 3.0.2 und 3.0.3 umbenannt wurde

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top