我正在尝试实现新的 Android Google Maps API (v2)。然而,它似乎并不适合SlidingMenu。您可能知道,MapFragment
实现是基于SurfaceView
. 问题是SurfaceView
不喜欢移动它——我的意思是把它放在可移动的视图中:
ViewPager
,ScrollView
,ListView
,- 或前面提到的
SlidingMenu
。
当你移动它时,它会在最初放置像素的地方留下一个黑洞。它看起来像这样。
这个问题可以通过在其上指定透明背景SurfaceView
或什至在其上放置透明来部分解决View
。我只是想不出结果是否仅对我来说是不可接受的,或者我有一个不同的问题使它看起来像它的样子。
要查看它的外观,请观看此视频。
(对不起质量,但问题很容易看出)
当一个普通的列表视图(橙色屏幕)在打开时被拉开SlidingMenu
,动画是流畅和漂亮的。但是一旦MapFragment
出现,地图上就会出现一些奇怪的刷新/闪烁/同步问题。
在 HTC One S 和三星 Galaxy ACE 上测试。
我解决这个问题的超级疯狂的想法:每次开始动画开始时,截取
不可能截图地图,但也许有人会从中得到启发。MapFragment
(使用 SurfaceView 应该可以)并在动画期间将其覆盖。但我真的不知道该怎么做......
或者也许以其他方式禁用重绘地图,我不知道。
更新:
找到了这个。
看来 SurfaceView 可以更改为 TextureView 以消除这些限制。但是由于MapFragment是基于SurfaceView的,不知道能不能实现。
另一个更新 似乎这个问题已经在设备 4.1+ 上得到解决。他们只是使用了 TextureView。但在较低版本上,我们仍然必须使用变通方法。