我搜索了新Google Android Map API v2的文档,但没有找到任何相关信息。在v2之前,我们(官方)无法正确显示每个应用程序(进程)的多个映射。我假设在MapFragment
实施时它不再是问题。我也知道,自API 17以来Fragments
可以是自包含的。最后但并非最不重要的是,有兼容性包,这使得将它们全部移回至少API 8(在API 7中,没有OpenGL 2.0所以地图不能用于afaik)。
Sa我拥有将我的应用移植到Maps API v2并实现以下方案的所有要素:ViewPager
包含Fragments
,每个都包含MapFragment
。
但我应该这样做吗?我的意思是,我会遇到性能问题 Fragments
中包含MapFragments
的20 ViewPager
?
如果您在文档或其他地方找到了解决我问题的任何内容,请告诉我。
编辑:示例用法:让我们想象一个屏幕,其中包含有关某些特定项目的信息 - 地点,事件,文章。另外,让我们想象一下,在其他信息中,它必须包含一个完全正常运行的地图。但我希望用户能够根据需要刷到另一个项目。每个项目都有自己的地图。
旁注:我知道我可以在ViewPager
之外实现一个地图,只是根据当前显示的项目进行更新,但这不是我想要的 - 它不是以用户为中心的设计。 / p>
可能的解决方案(但尚未检查)。 ViewPager
只在其缓存中保留一些(默认值为3)片段,并在它们即将显示时重新创建它们,因此不会有太多内存开销,因为只需要少量MapFragments
。性能问题可能是MapFragment
通货膨胀,我认为这是非常沉重的 - 但这可以通过回收MapFragments
来解决。
那么,如果我相信它会很好用的话,为什么我不实施呢?还有一个问题是,如果没有应用程序看起来像它已经坏了就无法移动MapFragments
。 See this
答案 0 :(得分:1)
你可以轻松测试它,但我的猜测是它非常依赖于手机,因为地图仍然很重要。
那说我永远不会推荐这种用户导航。地图已经可以刷过了,为什么还要添加ViewPager滑动呢?这将使用户体验非常混乱。如果你想在不同的视图/兴趣点之间切换,你应该添加按钮(导航应用程序中首选的溢出菜单按钮)或类似的东西,以帮助用户导航。
答案 1 :(得分:1)
是的,您肯定会遇到性能问题,因为ViewPager
默认情况下不使用视图回收;你甚至可以使用ImageView
s使其膨胀,更不用说MapFragments了。
就ViewPager
中的缓存和重新创建片段而言,有一个HorizontalListView库可能会为您节省工作量,因为它支持视图回收。