Android Google 地图标记未立即更新

Android Google Maps Marker not updating immediately

我有一个应用程序,用户可以在其中 select 一个位置。地图首先以他们的 GPS 位置为中心,但用户也可以拖动标记或在搜索栏中输入内容。这些都有效,但我发现了一个奇怪的问题,即标记没有立即更新。

更新中,只差一步...

这是我的 onMarkerDragEnd 代码:

    @Override
    public void onMarkerDragEnd(Marker marker) {
        //mLocMarker = marker; // this has no effect
        mLocMarker.setIcon(BitmapDescriptorFactory.defaultMarker());
        mLocMarker.showInfoWindow();

        LatLng mPos = mLocMarker.getPosition();

        LatLng[] coordinates = new LatLng[kmlCoordinates.size()];
        coordinates = kmlCoordinates.toArray(coordinates);
        if (BorderPatrol.PointIsInRegion(mPos, coordinates)) {
            try {
                mAddress = getNearestStreetAddress(mPos);
                markerTitle = mAddress.getAddressLine(0);
                Log.d(TAG, "DRAG: Valid Address is " + mAddress.getAddressLine(0));
                isValidAddress = true;
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        else {
            markerTitle   = "Out of Delivery Zone";
            markerSnippet = "Hold and drag to change location";
            Log.d(TAG, "Out of Delivery Zone: " + mPos);
            isValidAddress = false;
        }
        mLocMarker.setTitle(markerTitle);
        mLocMarker.setSnippet(markerSnippet);

        float mZoom = map.getCameraPosition().zoom;
        CameraUpdate mLoc = CameraUpdateFactory.newCameraPosition(new CameraPosition.Builder().target(mPos).zoom(mZoom).build());
        map.moveCamera(mLoc);
    }

所以,mLocMarker 是我要在此处更新的单个全局标记变量。

边界巡逻方法中的日志每次都会触发 - 它 returns 一个地址并记录它。然而,标题和片段没有更新——或者,它们总是落后一个事件。

我完全被难住了!

解决了...

我并不是每次都调用 mLocMarker.showInfoWindow() - 我认为我不必调用,因为这是一个全局变量,我在设置时调用它,但这就是问题所在!