GoogleMap(Android)投影可见区域在方向更改后未更新?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GoogleMap(Android)投影可见区域在方向更改后未更新?相关的知识,希望对你有一定的参考价值。
[当我的SupportMapFragment onCreateView()方法被调用时,我阅读了地图的
getProjection().getVisibleRegion().latLngBounds.northeast.x
和
getProjection().getVisibleRegion().latLngBounds.southwest.y
第一次启动应用程序(纵向模式)时,我得到x = 720和y = 1230。但是,将方向更改为横向后,我又看到了相同的值。
返回纵向模式会产生x = 1280和y = 670(这是我希望从横向模式得到的结果,然后返回横向模式会再次给出第一个数字。
就像投影总是在后面改变方向。
任何主意出了什么问题,以及如何解决?
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) );
以上是关于GoogleMap(Android)投影可见区域在方向更改后未更新?的主要内容,如果未能解决你的问题,请参考以下文章
无法在不单击标记的情况下在 GoogleMap 中显示信息窗口 - GoogleMap Cluster Android