Movimentazione onTouchEvent dentro una vista che risponde anche alla onTouchEvent (utilizzato per lavorare in osmdroid 3.0.2)

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

  •  26-10-2019
  •  | 
  •  

Domanda

Attualmente sto usando vaso osmdroid 3.0.1, e ho una MapView all'interno di un " Dragable Spazio " (una visione che si può scorrere tra le schermate). Ho un barra nella parte inferiore che permette il colpo all'utente tra gli spazi, e se l'evento si verifica tocco fuori di tale zona, ho chiamata mapView.onTouchEvent (evento).

Ciò usata per funzionare bene in 3.0.1, ma ho provato a osmdroid 3.0.4, ed è appare solo per il lavoro per il movimento verticale (che ho il sospetto è legato ad una certa regolazione tocco slop).

Ecco il codice dal mio punto di vista Dragable spazio.

@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);
}

Anche se questo è brutto (la vista deve essere passato un'istanza del MAP), ha fatto lavorare bene nelle versioni 3.0.1 e 3.0.2. Tuttavia, da quando 3.0.3 funziona più.

C'è un modo migliore per passare gli eventi touch per la mappa osmdroid ora?

Ho un progetto demo che illustra questo problema. L'eclissi completa progetto è su github .

È possibile modificare il percorso di generazione di utilizzare un barattolo 3.0.1 o 3.0.2, e la mappa scorre intorno correttamente all'interno dello spazio più grande, ma cambiando a 3.0.3 o 3.0.4 e qualsiasi movimento laterale viene ignorata.

Qualsiasi orientamento sarebbe molto apprezzato.

PS, questo è un post cross dalla lista osmdroid. Mi auguro che ci sono un paio di lettori qui.

È stato utile?

Soluzione

Il problema era che MapView.onTouchEvent stato rinominato in MapView.dispatchTouchEvent tra le versioni 3.0.2 e 3.0.3

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top