所以我试图将Google地图集成到我的应用程序中,我遇到了一个我并不完全理解的概念。我已经看到将谷歌地图添加到应用程序中,似乎最常见的方法是使用活动。
我发现了一些网站和一个SO问题,展示了如何将谷歌地图放入片段中,但如果用户不断点击个人资料并返回,那会是一个问题吗?导致地图不断重建或恢复。如果地图是一项活动,那么这种表现会更好吗?
基本上,我不确定从活动GUI转换到片段的最佳方法?我有一个只使用1个活动的应用程序,我只使用了多个不同的片段,用这个代码改变它们
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
Fragment fragment = getFragmentManager().findFragmentById(R.id.framecontainer);
if (fragment == null) {
ft.add(R.id.framecontainer, frag, tag);
} else {
ft.replace(R.id.framecontainer, frag, tag);
}
ft.addToBackStack(null);
ft.commit();
我很困惑,因为当我创建主要活动时,我打电话给
setContentView(R.layout.baselayout);
这个布局只包含一个框架容器,我会立即添加一个HomeScreenFragment,当我需要更改时,我会使用上面的FragmentTransaction
代码。
但是,如果我的新MapActivity使用setContentView(R.layout.maplayout);
,我将如何最好地更改屏幕?如果R.id.maplayout
不包含framelayout,那么最好是开始一个使用许多片段的新活动,就像我之前提到的那样吗?我记得曾经多次拨打setContentView
或onCreate()
以外的电话是不好的做法。
似乎我遗漏了一些东西,因为到目前为止似乎有两种方法可以使用不同布局的活动
解决我的实际问题
我希望我的用户点击地图上标记的其他用户,这些用户会将他们带到profilelayout
并查看该用户的个人资料,我应该使用上述两种方法之一,还是应该如何进行?
你们有没有任何意见指出我的最佳方向?谢谢!
答案 0 :(得分:0)
如果您当前的应用程序已经碎片重,请考虑使用MapFragment吗?我认为,如果你正确地清理你的对象/资源,它不应该是一个性能问题。
另外根据文档说明了关于MapFragment的以下内容:
它是地图视图的包装器,可自动处理必要的生命周期需求。
我认为通过使用LayoutInflater添加/删除视图可以进行布局操作也很不错。