38

Non sono sicuro se dovrei usare MapView o continuare a utilizzare MapFragment. La mia applicazione è un'app che trova il set di posti più vicino a te più vicino. Voglio essere in grado di aggiungere posizioni, visualizzare i dettagli di un marcatore quando premo un marker e quando l'utente si sposta lungo la mappa voglio essere in grado di ottenere le coordinate del centro della mappa e visualizzare le posizioni più vicine all'interno di un definito raggio. Sarei in svantaggio se continuo a utilizzare MapFragments o devo passare a MapView mentre ho ancora la possibilità?Devo usare MapView o MapFragment

risposta

41

Prima di tutto, presto l'API V1 di MapView e Google Maps smetterà di essere supportata e non riceverà nuovi aggiornamenti. E presto tutto il supporto andrà via.

In secondo luogo, MapFragment potrebbe essere un po 'meno flessibile in questo momento, ma la mappa presentata, ha manipolato un aspetto molto migliore. E immagino che la sua funzionalità migliorerà col tempo.

Quindi sicuramente continuerò a utilizzare MapFragments.

UPDATE: Come @ Brian Bianco ha sottolineato nei commenti, oggi c'è un MapView in Google API V2, e si dovrebbe utilizzare quando si vuole incorporare una mappa in un frammento. In questo modo eviterete frammenti a cascata quando non dovete.

+2

Grazie, è incoraggiante =) –

+0

Per quanto riguarda le funzionalità che richiedono MapView come onTouchEvent (evento MotionEvent, MapView mapView), sarebbe possibile implementarlo con facilità in MapFragments? –

+0

puoi lasciare la tua FragmentActivity che detiene l'attrezzo MapFragment su MapClick e onMapLongClick a seconda di ciò che vuoi ottenere. –

24

MapFragment

  • Usalo se si desidera aggiungere una mappa in Classe di attività (non frammentare perché crea un frammento nidificato e E'un disastro).
  • Utilizzare SupportMapFragment se si desidera supportare solo le versioni di Android inferiori alla v12.

MapView

  • Usalo se avete intenzione di aggiungere una mappa in un frammento. (è necessario aggiornare ogni lifecicle a MapView).