2013-04-04 42 views
0

我將我的應用程序從iOS移植到Android,我想給它與iOS tabbar發生的相同的選項卡式佈局。選項卡式Android應用程序基本結構

我發現目前最好的方法是爲每個「標籤」選擇一個帶有片段的操作欄。這是工作,但我不明白如何瀏覽每個標籤。例如:一個標籤片段是一個listfragment,當我點擊一個列表條目時,我想推送一個新的(片段或活動?..建議),顯示有關該條目的詳細信息。

我使用select事件listfragment內部:

getFragmentManager() 
     .beginTransaction() 
     .replace(what_goes_here?, detailsfrag) 
     .commit(); 

什麼我已經試過,只是增加了listfragment以上detailsfrag。

這是正確的佈局嗎? (3個標籤,每個片段,每個推片段) 獎金問題:片段和片段活動之間的區別?

非常感謝。

+0

獎金問題第一:FragmentActivity是Activity應該包含Fragments的子類。它提供了一些常用的功能,一個FragmentManager。你可以使用它,但不必。 – David 2013-04-04 00:30:48

回答

0

我結束了使用意圖啓動一個新的FragmentActivity,但隱藏actionmenu選項卡。但這是它應該考慮Android最佳實踐的方式。事實上,我想要顯示的片段實際上應該是根據android的做事方式進行的活動。 也是twitter的應用程序這樣工作,所以我認爲這是正確的方法。

1

你是正確的路線。 .replace()函數用於分割 - 應該由另一個替換的分割。第一個由其容器標識符標識 - 例如R.id.fragmentContainer。第二個由參考標識。鏈接API

+0

但我看到第一個參數是容器,而不是要被替換的片段...作爲事實問題,我嘗試了使用this.getid()的建議,但它不起作用 – Peterdeka 2013-04-04 00:56:28

+0

你說得對,我糾正了我的答案。另一個提示:只能動態添加的片段可以被替換。在xml佈局文件中定義的碎片不能被替換。 – David 2013-04-04 01:06:30

+0

是的,他們是動態添加的,這就是爲什麼我不明白哪個是我的listfragment容器。因爲如果我使用android.R.id.content它會取代一切(也是其他選項卡)。我使用了eclipse提供的默認導航模板,並帶有製表符和頁面導航(FragmentPagerAdapter子類化,它爲選定的選項卡返回正確的片段) – Peterdeka 2013-04-04 01:26:49