用Tabhost以及Fragment實現標籤式主介面架構 (Android學習筆記)

來源:互聯網
上載者:User

      開始學習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的介面堆棧問題。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.