2

我正在开发一个高级集成 Google Maps API V2 的 android 应用程序。我正在使用 SupportFragment 并且一切正常,直到我开始将地图放入另一个子片段中 - 片段层次结构很深:

SplitViewFragment->RightChildFragment->ViewPagerFragment->SupportMapFragment

我想实现平板电脑的特殊布局,因此无法删除一个片段级别。

到目前为止,一切都很好 - 在 Android 4.3+ 设备上一切正常,但在较低的 API 级别上,地图片段始终保持空白/透明 - 谷歌徽标和缩放控件可见。没有 logcat 错误。当我删除一个嵌套片段时,谷歌地图正在同一台设备上工作;所以这不是一个身份验证问题,正如经常描述的那样。

我还尝试使用 zOrderOnTop 初始化 MapFragment,但没有成功:

GoogleMapOptions options = new GoogleMapOptions(); options.zOrderOnTop(true); SupportMapFragment mapFragment = SupportMapFragment.newInstance(options);

我花了整整两天的时间试图找到这个问题的答案,并进行了广泛的研究——但没有成功。

我非常期待你的回答。太感谢了!

4

2 回答 2

0

我曾经遇到过这个问题。希望此链接对您有所帮助:)

感谢 jcampbell05

如果您在较旧的 Android 设备上使用过 SupportMapFragment,那么您就会知道,当您滚动 ListView、ScrollView 或 ViewPager 时它会留下一个黑框是多么令人讨厌。

这背后的原因是 Map 使用 SurfaceView,当应用程序创建此视图时,它会在您的 Activity 后面创建一个窗口并打一个洞,这意味着您的 Activity 窗口中的东西在 SurfaceView 的原始位置下方看不到。

于 2015-09-03T11:36:07.337 回答
0

难以置信 - 我有一个带有硬件加速的层次结构动画视图 - 我删除了 API Levels < 18 的加速,因为 clipPath 存在问题:

setLayerType(View.LAYER_TYPE_SOFTWARE, null);

我通过删除硬件加速的停用来修复它。我必须找到另一种能够停用硬件加速的解决方案。

非常感谢你的帮助。

于 2015-09-03T14:22:05.283 回答