0

我想在tabhost下有幾個頁面。帶有選項卡的頁面在應用程序啓動後大約在頁面2/3上進行訪問。我很困惑如何鏈接到tabhost的第一頁(從沒有tabhost的頁面)如何在Tabhost和ActionBars中爲活動構造代碼

tabhost中的每個選項卡都是一個單獨的活動。

因此,當要將用戶發送到tabhost中的某個頁面時,是否啓動Tabhost活動(從擴展TabActivity開始),創建tabhost,然後......以某種方式選擇要加載的標籤中的哪個頁面?像tabhost.myTab.trigger.start(); INSTEAD只是直接加載其中一個選項卡活動..

因此,無論何時您離開tabhost,然後回到它,您正在重新創建它,這是正確的方式來構建的東西嗎?

謝謝!

回答

2

的TabHost方法被認爲是在Android中創建標籤的一個很老的方法應用。如果您將活動放置在這些選項卡中,情況尤其如此。

現代Android應用程序使用Fragments,並使用Action Bar框架將這些碎片放入選項卡中。

這可以很容易地從您的主要活動使用

getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

這有幾個優點來完成。這意味着您的碎片可以放置在ViewPager中(因此用戶可以在它們之間滑動)。這也意味着你的標籤將適應他們正在運行的設備。 (在電話中,他們可能出現在操作欄下方,但在平板電腦上他們實際上成爲操作欄的一部分)。

根據您的實施情況,可以這樣做,即在選項卡之間導航不會導致重新創建碎片(如果這就是您之後的操作)。

就如何落實操作欄選項卡的詳細指南,可以發現here

如果向後兼容性是一個問題,然後檢查出驚人Action Bar Sherlock庫。

1

我不完全理解你正在努力完成的行爲。但是,如果你不想重新發明輪子,我會建議你安裝ActionBarSherlock演示應用程序1來檢查是否已經實現了所需的行爲作爲庫示例之一。如果它已經完成,那麼你可以去github項目來看看源代碼,瞭解它是如何完成的,併爲此做出貢獻。

操作欄福爾摩斯演示

https://play.google.com/store/apps/details?id=com.actionbarsherlock.sample.demos&hl=en

操作欄福爾摩斯片段演示

https://play.google.com/store/apps/details?id=com.actionbarsherlock.sample.fragments&hl=en