GoogleMap(Android)投影可见区域在方向更改后未更新?

问题描述 投票:1回答:1

[当我的SupportMapFragment onCreateView()方法被调用时,我阅读了地图的

getProjection().getVisibleRegion().latLngBounds.northeast.x

getProjection().getVisibleRegion().latLngBounds.southwest.y

第一次启动应用程序(纵向模式)时,我得到x = 720y = 1230。但是,将方向更改为横向后,我又看到了相同的值。

返回纵向模式会产生x = 1280y = 670(这是我希望从横向模式得到的结果,然后返回横向模式会再次给出第一个数字。

就像投影总是在后面改变方向。

任何主意出了什么问题,以及如何解决?

android google-maps orientation supportmapfragment mapfragment
1个回答
0
投票
这里的问题是onConfigurationChanged(我假设您要检查x和y的值)被称为

之前 GoogleMap可以更新其投影。

我发现此问题的一种方法是触发0%的虚拟缩放,完成后将调用onCameraIdle(使用更新的投影)


添加OnCameraIdleListener:

// add this to your imports import com.google.android.gms.maps.GoogleMap.OnCameraIdleListener // add this to your map-using activity class MapsActivity implements ..., OnCameraIdleListener { ... }

然后,在您的地图使用活动中:

@Override public void onCameraIdle() { // ... do something with getProjection() ... } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // dummy zoom to trigger onCameraIdle with *correct* orientation mMap.animateCamera( CameraUpdateFactory.zoomBy(0f) ); }

© www.soinside.com 2019 - 2024. All rights reserved.