2017-02-22 78 views
0

因此,我试图将谷歌地图集成到我的应用程序,我遇到了一个我不完全理解的概念。我已经看到,将谷歌地图添加到应用程序中,似乎最常见的方式是使用一项活动。最好的方式来改变用户界面,使用活动和片段

我发现了一些网站和一个SO问题,显示如何将Google地图放入一个片段中,但如果用户不断点击配置文件并返回,这会是一个问题吗?导致地图不断重新创建或恢复。如果地图是一项活动,那么这种表现会更好吗?

基本上,林不知道从活动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,是否最好启动一个使用许多片段的新活动,如前面提到的那个片段?我记得听说不止一次或onCreate()以外拨打setContentView是不好的做法。

看来我失去了一些东西,因为到目前为止,它好像有使用活动,不同的布局

  1. 每次开始一个新的活动,只是想尽量减少活动量的2种方式。
  2. 做一个FrameLayout里的活动,只要将碎片每次

为了解决我的实际问题 我希望我的用户点击其他用户在地图上标出这将给他们带来一个profilelayout和观点用户的个人资料,我应该使用上述两种方法之一还是应该如何去做?

你们有什么意见可以指出我最好的方向吗?谢谢!

回答

0

如果您当前的应用程序已经很重,请问您是否考虑过使用MapFragment?我想如果你正在清理你的对象/资源,它不应该是一个性能问题。

而且根据文档它说下面讲MapFragment:

它周边的地图来自动处理必要的生命周期需要的视图的包装。

我认为还可以通过使用LayoutInflater添加/删除视图来进行布局操作。

相关问题