Android MapView在初始化后片段冻结(不可点击或拖动)



我想在片段中显示MapView。这张地图是我所期望的,但它似乎只是作为一张图片显示。我不能拖动来移动相机或展开/缩放来缩放。我还尝试在我的片段中使用SupportMapFragment,但得到了相同的结果。

我有一个NavigationView在我的活动。我不认为在NavigationView和MapView的触摸事件上有冲突

有人见过这个吗?

public class CustomizedMapFragment extends Fragment implements OnMapReadyCallback{
    MapView mapView;
    GoogleMap googleMap;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_map, container, false);
        mapView = (MapView) rootView.findViewById(R.id.mapView);
        mapView.onCreate(savedInstanceState);
        mapView.getMapAsync(this);
        return rootView;
    }
    @Override
    public void onMapReady(GoogleMap googleMap) {
        this.googleMap = googleMap;
        this.googleMap.getUiSettings().setZoomControlsEnabled(true);
        this.googleMap.getUiSettings().setZoomGesturesEnabled(true);
    }
    @Override
    public void onResume() {
        super.onResume();
        mapView.onResume();
    }
    @Override
    public void onPause() {
        super.onPause();
        mapView.onPause();
    }
    @Override
    public void onDestroy() {
        super.onDestroy();
        mapView.onDestroy();
    }
    @Override
    public void onLowMemory() {
        super.onLowMemory();
        mapView.onLowMemory();
    }
}

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <com.google.android.gms.maps.MapView
        android:layout_margin="16dp"
        android:id="@+id/mapView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</RelativeLayout>

尝试使用这个UiSettings.setScrollGesturesEnabled(boolean),通过使用它,您可以通过用手指拖动地图来滚动(平移)地图。

另一种方法是在通过XML属性创建映射时配置这些选项。

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:map="http://schemas.android.com/apk/res-auto"
  android:name="com.google.android.gms.maps.SupportMapFragment"
  android:id="@+id/map"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  map:cameraBearing="112.5"
  map:cameraTargetLat="-33.796923"
  map:cameraTargetLng="150.922433"
  map:cameraTilt="30"
  map:cameraZoom="13"
  map:mapType="normal"
  map:uiCompass="false"
  map:uiRotateGestures="true"
  map:uiScrollGestures="false"
  map:uiTiltGestures="true"
  map:uiZoomControls="false"
  map:uiZoomGestures="true"/>

但是为了在XML布局文件中使用这些自定义属性,必须首先添加以下名称空间声明。

xmlns:map="http://schemas.android.com/apk/res-auto"

更多信息,请查看此文档

相关内容

  • 没有找到相关文章

最新更新