2017-02-22 80 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添加/刪除視圖來進行佈局操作。

相關問題