2011-04-01 23 views

Respuesta

6

descubrí que es setClickable (false);

0

Si incrusta la vista del mapa en su aplicación, creo que se puede utilizar mapas estáticos para ver la misma.

+0

¿qué es lo que quiere decir con mapas estáticos? – Vincent

+0

mapas estáticos son una especie de instantáneas del mapa para una ubicación específica. Puedes acercar y alejar, pero no se puede hacer mucho. – Vinay

+1

Dame más detalles acerca de qué es exactamente lo que busca ... – Vinay

-2

Quizás esto podría ser una solución:

mapView.setEnabled (falso)

+1

No, no hace nada – Vincent

2

Usted querrá setClickable (falso), pero también probablemente querrá setFocusable (falso) con el fin de evitar que el MapView de conseguir el enfoque.

Eso puede ser un problema cuando el usuario utiliza los botones de navegación de hardware, ya que si el MapView tiene centran entonces los botones de arriba-abajo-izquierda-derecha se desplazarán el mapa.

38

A pesar de que hay una respuesta aceptada, sólo proporcionar mi respuesta, ya que ni me ayude. mapView.setClickable (falso) no funciona todo el tiempo, como en los casos en que tiene un mapView dentro de un scrollView. Así que creé un objeto de vista justo encima del mapView del mismo tamaño.

Gestioné el onTouchListener para mi vista de superposición y pasé todos los eventos táctiles al elemento principal de mapView (ScrollView en mi caso), omitiendo así todos los eventos táctiles de mapView a scrollview.

una forma más de lograr es haciendo

mMap.getUiSettings().setAllGesturesEnabled(false); 
+0

funciona para v2 mapa de fragmentos también! – Aphex

8
mMap.getUiSettings().setScrollGesturesEnabled(false); 

esto puede desactivar en movimiento en un mapa

0

creé customMapView que se extiende MapView y reemplazar el método onInterceptTouchEvent.

public class customMapView extends MapView { 
    public customMapView(Context context) { 
     super(context); 
    } 

    public customMapView(Context context, AttributeSet attributeSet) { 
     super(context, attributeSet); 
    } 

    public customMapView(Context context, AttributeSet attributeSet, int i) { 
     super(context, attributeSet, i); 
    } 

    public customMapView(Context context, GoogleMapOptions googleMapOptions) { 
     super(context, googleMapOptions); 
    } 

    @Override 
    public boolean onInterceptTouchEvent(MotionEvent ev) { 

//  return super.onInterceptTouchEvent(ev); 
     return true; 
    } 

} 
1

Podemos detener las interacciones del usuario con MapView o SupportMapFragment usando GoogleMapOptions

override fun onCreate(savedInstanceState: Bundle?) { 
     super.onCreate(savedInstanceState) 

     val mapOptions = GoogleMapOptions() 
     mapOptions.rotateGesturesEnabled(false) 
     mapOptions.zoomGesturesEnabled(false) 
     mapOptions.tiltGesturesEnabled(false) 
     mapOptions.scrollGesturesEnabled(false) 

     // Map View 
     val mapView = MapView(context, mapOptions) 
     mapView.onCreate(savedInstanceState) 

     // Or 
     val mapView = MapView(context 
     mapView.getMapAsync { googleMap -> 
      googleMap.uiSettings.setAllGesturesEnabled(false) 
     } 

     // Or Map Fragment 
     val mapFragment = SupportMapFragment.newInstance(mapOptions) 
} 
Cuestiones relacionadas