更改可见性后,Android Map渲染会变形并在下方显示黑色

时间:2018-07-18 08:36:36

标签: android google-maps google-api android-mapview

我将Google地图库从9.4.0升级到了最新版本,并为Android 8.0升级了sdk。但是由于这个原因,多个地图的使用在应用程序中中断了。我通过将它们设置为liteMode="true"来解决不需要交互的地方。但是我无法做到的一个例子就是造成问题。在较旧的API手机和模拟器上似乎可以正常运行,但问题在于较新的API。

我在顶部有一个搜索栏,当您点击搜索栏时,会打开一个搜索叠加图,其中列出了列出的地点。因此,发生的事情是,当我们转到屏幕时,您会看到一切正常,应将其映射到整个屏幕,并在顶部显示搜索栏。但是,当您打开搜索(以编程方式隐藏包含setVisiblity(View.GONE)的包含地图和相关文本叠加层的mapLayout堆栈)并选择或取消任何选项时,它会返回原样(隐藏搜索列表和取消隐藏maplayout堆栈)。但是只有地图无法正确呈现。

我可以看到MapView很好,因为我在应有的位置看到了google徽标,但地图的实际呈现方式却失真了,就像矩形的底部在一定程度上变形了。而且它下面的区域是黑色的。

buggy map image

一些其他信息是,我用litemode修复的其他情况是,如果地图位于滚动视图中,则地图渲染的顶部将粘贴在正确的位置,而底部将粘贴在屏幕的顶部中间或相对y位置(仅在滚动视图的外部)。滚动时,我会在滚动时看到它的高度失真。因此,问题似乎与视图渲染内部的滚动,大小和布局更改有关。

我已经用谷歌搜索并尝试了许多解决方案,例如在其前面放置透明视图,将其嵌套在另一个linearLayout内或关闭硬件加速等...但是似乎都无法正常工作。另外,我也尝试了MapFragment和MapView。结果是一样的。

0 个答案:

没有答案