moveCamera和animateCamera第二次不起作用

时间:2016-01-18 11:14:07

标签: android google-maps

我有以下更新地图的方法:

private void setCamera() {
        if (currentLocation != null) {
            String[] coords = currentLocation.split(",", 2);
            CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(Double.parseDouble(coords[0]), Double.parseDouble(coords[1])));
            CameraUpdate zoom = CameraUpdateFactory.zoomTo(5);
            mMap.moveCamera(center);
            mMap.animateCamera(zoom);
        }
    }

第一次在打开应用程序后立即调用此方法,此方法运行正常。但之后我转到另一个片段然后再到第一个片段。在这种情况下调用该方法,currentLocation不等于null,center得到了正确的LatLng对象,但我的地图视图没有改变,缩放小于5。 有什么问题?

1 个答案:

答案 0 :(得分:4)

最终我已经解决了这个问题。我更改了以前的代码如下:

private void setCamera() {
        if (currentLocation != null) {
            String[] coords = currentLocation.split(",", 2);
            CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(Double.parseDouble(coords[0]), Double.parseDouble(coords[1])));
            CameraUpdate zoom = CameraUpdateFactory.zoomTo(5);
            mapFragment.getMap().moveCamera(center);
            mapFragment.getMap().animateCamera(zoom);
        }
    }

现在地图显示正确。