我一直在努力让 MapView 无法点击。我希望有人也遇到这个问题。
这是我的代码:
<com.google.android.gms.maps.MapView
android:id="@+id/map_header"
android:layout_width="fill_parent"
android:layout_height="90dp"
android:clickable="false"
android:longClickable="false"
map:liteMode="true"
map:mapType="normal"
/>
此外:
mMap.getUiSettings().setAllGesturesEnabled(false);
mMap.getUiSettings().setMapToolbarEnabled(false);
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(userLocation)
.zoom(16)
.build();
mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
mProgressBar.setVisibility(View.GONE);
这只发生在我使用lite模式时。在普通模式下,它不可点击。
提前致谢:)
答案 0 :(得分:2)
考虑到您在活动中使用它。您可以执行以下操作
public class MapActivity extends AppCompatActivity implements OnMapReadyCallback {
MapView mapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
// Gets the MapView from the XML layout and creates it
mapView = (MapView) v.findViewById(R.id.map_header);
mapView.setClickable(false);
mapView.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap map) {
// Perform action on your map. E.g. Display marker
}
}
答案 1 :(得分:2)
我也有这个问题。解决这个问题的方法是覆盖onMapClick监听器,如下所示:
mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
//do nothing, we want to suppress launching Google Maps
}
});
答案 2 :(得分:-1)
在mapView.setClickable(false)
回拨(getMapAsync
方法)中设置onMapReady
。