6

我搜索了新的Google Android Map API v2的文档,但没有找到任何相关信息。在 v2 之前,我们(官方)不能正确地为每个应用程序(进程)显示一个以上的地图。我认为随着MapFragment实施它不再是一个问题。我也知道,Fragments从 API 17 开始,它可以是独立的。而且,最后但并非最不重要的是,有兼容性包,它可以将它全部移植回至少 API 8(在 API 7 中,没有 OpenGL 2.0 所以地图不起作用afaik)。

Sa 我拥有将我的应用程序移植到 Maps API v2 并实现以下场景的所有要素:ViewPager包含Fragments并且每个都包含一个MapFragment.

但我应该这样做吗?我的意思是,如果我在 a中包含例如 20 ,我会面临性能问题吗?FragmentsMapFragmentsViewPager

如果您在文档或其他地方发现任何可以解决我问题的内容,请告诉我。


编辑:示例用法:让我们想象一个包含有关某些特定项目(地点、事件、文章)的信息的屏幕。还让我们想象一下,除其他信息外,它必须包含一个地图才能完全发挥作用。但我希望用户能够根据需要滑动到另一个项目。每个项目都有自己的地图。

旁注:我知道我可以在外部实现一张地图,ViewPager然后根据当前显示的项目对其进行更新,但这不是我想要的——它不是以用户为中心的设计。


可能的解决方案(但尚未检查)。ViewPager只在它的缓存中保留一些(默认 - 3)片段,并在它们即将出现时重新创建它们,因此不会有太多的内存开销,因为只需要几个MapFragments。我相信,性能问题可能MapFragment是相当严重的通货膨胀——但这可以通过回收MapFragments.


那么,如果我相信它会很好用,我为什么不实施它呢?MapFragments还有一个问题,如果应用程序看起来像是坏了,就无法移动。看到这个

4

2 回答 2

1

是的,您肯定会遇到性能问题,因为ViewPager默认情况下不使用视图回收;你甚至可以用ImageViews 让它膨胀,更不用说 MapFragments 了。

至于缓存和重新创建片段ViewPager- 有一个Horizo ​​ntalListView 库可能会为您节省精力,因为它支持视图回收。

于 2013-03-06T09:48:30.030 回答
1

您可以轻松地对其进行测试,但我的猜测是它在很大程度上取决于手机,因为地图运行起来仍然相当繁重。

也就是说,我永远不会推荐这种用户导航。地图已经可以滑动了,为什么还要添加 ViewPager 滑动呢?这会使用户体验非常混乱。如果你想在不同的视图/兴趣点之间切换,你应该添加按钮(在导航应用程序中首选溢出菜单按钮)或类似的东西来帮助用户导航。

于 2013-03-06T08:31:56.750 回答