当我的 googlemaps 视图活动重新获得焦点时出现问题(窗口下方有黑色区域的地图)

Posted

技术标签:

【中文标题】当我的 googlemaps 视图活动重新获得焦点时出现问题(窗口下方有黑色区域的地图)【英文标题】:Problems when my googlemaps view activity regain the focus (map with black zone in down part of the window) 【发布时间】:2010-11-24 17:29:11 【问题描述】:

我的应用有问题,它有很多活动,其中两个有 googlemap 视图。我的 A 活动有一个完整的地图视图,而我的 B 活动有一个小地图视图。好的,当我在 B 活动上并有时按返回键直到我返回到我的 A 活动时,我的 A 活动地图显示错误,窗口下方有一个黑色区域。这仅在我从 B 活动中按下时才会发生。

因此,我需要实现/覆盖 A 的 onResume() 方法以重新启动从头开始重新绘制所有内容的活动.. 想再做一次 ONCREATE 方法,但我想我不能再调用它了.. . 或者我可以?

我必须输入哪些代码才能从头开始重新绘制所有窗口?

我尝试了所有这些:

-mapView.requestLayout() --> 它有点作用,重新绘制地图,但缩放并显示 B 活动上显示的最后一张地图......没有意义:我不想要那个。是不同的地图,不必显示相同的坐标和缩放,每个都有自己的。

-mapView.invalidate() --> 不起作用

-mapView.postInvaldiate() --> 不起作用

【问题讨论】:

你在 B 中有 A 使用的东西吗?使用后退按钮将导致调用Activity.onDestroy() 不,我没有在 A 上使用 B ...... 当您谈到错误和黑色区域时,您指的是地图图块(地图的方形部分)未正确加载吗? 不,黑色区域,不是方形部分 嗨,我在两个名为 bbaya 选项卡的活动上的两个地图之间存在完全相同的问题。我尝试使用清单 但不起作用。你是怎么解决你的问题的? 【参考方案1】:

不建议在同一进程中运行多个地图(MapViews)。通常,使用默认配置,所有活动(包括 MapActivities)都在同一进程中运行。

根据 api 文档,位于此处 http://code.google.com/android/add-ons/google-apis/reference/com/google/android/maps/MapActivity.html

每个进程只支持一个 MapActivity。同时运行的多个 MapActivity 可能会以意想不到的方式干扰。

我在同一进程中遇到多个 MapView 的问题:

虽然看起来有 2 应用程序中的不同地图,变化 第一张地图(例如:将其移动到 某个位置,切换卫星 视图)也反映在 第二张图,好像是一样的 地图。 有时,地图图块没有 正确加载。部分 地图,或完整的地图仍然存在 空。 在 Logcat 中,记录了 apache http 连接池错误(源自 TilesProvider)

这里记录了一个缺陷:http://code.google.com/p/android/issues/detail?id=3756

解决方案/解决方法是在不同的进程中托管您的地图:

<activity android:name=".MapView1" android:process=":MapView1">
<activity android:name=".MapView2" android:process=":MapView2">

【讨论】:

以上是关于当我的 googlemaps 视图活动重新获得焦点时出现问题(窗口下方有黑色区域的地图)的主要内容,如果未能解决你的问题,请参考以下文章

GTKMM/C++ 窗口事件失去/重新获得焦点?

OSX 10.10 应用程序没有获得焦点或事件循环

TextBox 重新获得焦点,而其他控件则没有

FragmentStatePagerAdapter 视图分页器片段在活动重新创建后不显示

FragmentStatePagerAdapter视图分页器片段在重新创建活动后未显示

Flutter - 无法在路线之间保持焦点