開始學習Android,第一個掉入的坑就是標籤式介面。好像Android一開始的版本就不是很好支援這個東西。
後來才出了Fragment這個新的UI來將一個頁面作為一個UI控制項來使用的功能。覺得Android開發比iPhone開發麻煩,雖然我
沒搞過iPhone。。。。
摘要 本文將介紹如何使用Tabhost以及Fragment控制項來實現一個基本的標籤介面,接著會介紹如果實現返回等操作介面
堆棧的功能。
注意的是,在Android3.0以上才加入了Fragment控制項,為了相容低版本的系統,我們需要用Android
sdk manager 下載並引用Android的支援庫檔案support library,移步官網這裡有詳細安裝介紹。
以下是主介面 main_tabhost_activity.xml檔案,其中tab1、tab2、tab3是我們要進行切換的介面,TabWidget是標籤的內容,隨後我們通過
代碼添加標籤按鈕。
對應的Activity類要繼承 FragmentActivity,並執行 OnTabChangeListener 介面
MainTabHost FragmentActivity
接著我們開始初始化TabHost控制項,並在底部加入三個自訂的標籤按鈕
= (TabHost) String[] title = String[] { "首頁", "協助", "Kecp"[] tabIds = ( i = 0; i < title.length; i++= Button(
其中按鈕的背景圖代碼如下,在drawable檔案夾下建立一個tab_lable.xml檔案
這時候運行就可以看到以下:
= contentViewID = 0 (tag.equals("首頁"frag = FirstPageFragment(); contentViewID = (tag.equals("協助"= = (frag == = (manager.findFragmentByTag(tag) == =trans.replace(contentViewID, frag, tag); trans.commit(); } }
這樣點擊下邊按鈕時候便可以切換了,而且對應標籤頁的按鈕也會顯示未紅色。其中FirstPageFragment只是一個簡單的類,繼承了Fragment。
實際開發中這個介面就作為我們某一個功能的主介面來使用了。相當於一個Activity。雖然實現很簡單,但還是把代碼都貼出來方便各位吧~~
FirstPageFragment Fragment = inflater.inflate(R.layout.first_page_fragment, =FirstPageFragment
first_page_fragment.xml
下次為大家分享TabHost的介面堆棧問題。