歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android應用底部導航欄(選項卡)實例

現在很多Android的應用都采用底部導航欄的功能,這樣可以使得用戶在使用過程中隨意切換不同的頁面,現在我采用TabHost組件來自定義一個底部的導航欄的功能。

我們先看下該demo實例的框架圖:

其中各個類的作用以及資源文件就不詳細解釋了,還有資源圖片(在該Demo中借用了其它應用程序的資源圖片)也不提供了,大家可以自行更換自己需要的資源圖片。直接上各個布局文件或各個類的代碼:

[1]  res/layout目錄下的 maintabs.xml 源碼:

[html]
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <TabHost android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"  
  3.   xmlns:android="http://schemas.android.com/apk/res/android">  
  4.     <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">  
  5.         <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="0.0dip" android:layout_weight="1.0" />  
  6.         <TabWidget android:id="@android:id/tabs" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0.0" />  
  7.             <RadioGroup   
  8.                 android:gravity="center_vertical" android:layout_gravity="bottom" android:orientation="horizontal" android:id="@id/main_radio" android:background="@drawable/maintab_toolbar_bg"   
  9.                 android:layout_width="fill_parent" android:layout_height="wrap_content">  
  10.                 <RadioButton  android:id="@id/radio_button0" android:layout_marginTop="2.0dip" android:text="@string/main_home" android:drawableTop="@drawable/icon_1_n" style="@style/main_tab_bottom" />  
  11.                 <RadioButton  android:id="@id/radio_button1" android:layout_marginTop="2.0dip" android:text="@string/main_news" android:drawableTop="@drawable/icon_2_n" style="@style/main_tab_bottom" />  
  12.                 <RadioButton  android:id="@id/radio_button2" android:layout_marginTop="2.0dip" android:text="@string/main_manage_date" android:drawableTop="@drawable/icon_3_n" style="@style/main_tab_bottom" />  
  13.                 <RadioButton  android:id="@id/radio_button3" android:layout_marginTop="2.0dip" android:text="@string/main_friends" android:drawableTop="@drawable/icon_4_n" style="@style/main_tab_bottom" />  
  14.                 <RadioButton  android:id="@id/radio_button4" android:layout_marginTop="2.0dip" android:text="@string/more" android:drawableTop="@drawable/icon_5_n" style="@style/main_tab_bottom" />  
  15.             </RadioGroup>  
  16.     </LinearLayout>  
  17. </TabHost>  

[2] res/drawable 下的 home_btn_bg.xml 源碼:

[html]
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <selector  
  3.   xmlns:android="http://schemas.android.com/apk/res/android">  
  4.     <item android:state_focused="true" android:state_enabled="true" android:state_pressed="false" android:drawable="@drawable/home_btn_bg_s" />  
  5.     <item android:state_enabled="true" android:state_pressed="true" android:drawable="@drawable/home_btn_bg_s" />  
  6.     <item android:state_enabled="true" android:state_checked="true" android:drawable="@drawable/home_btn_bg_d" />  
  7.     <item android:drawable="@drawable/transparent" />  
  8. </selector>  

[3] res/values 下的源碼:

dimens.xml源碼

[html]
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.   
  4.     <dimen name="bottom_tab_font_size">10.0sp</dimen>  
  5.     <dimen name="bottom_tab_padding_up">5.0dip</dimen>  
  6.     <dimen name="bottom_tab_padding_drawable">2.0dip</dimen>  
  7.     <dimen name="switch_logo_bottom_padding">30.0sp</dimen>  
  8.     <dimen name="widget_height">100.0dip</dimen>  
  9.     <dimen name="sta_height">48.0dip</dimen>  
  10.     <dimen name="large_padding_length">20.0dip</dimen>  
  11.     <dimen name="widget_write_margin_top">19.0dip</dimen>  
  12.     <dimen name="widget_write_margin_left">10.0dip</dimen>  
  13.     <dimen name="widget_content_margin_top">20.0dip</dimen>  
  14.     <dimen name="widget_content_margin_left">10.0dip</dimen>  
  15.     <dimen name="widget_logo_size">35.0dip</dimen>  
  16.     <dimen name="title_height">74.0dip</dimen>  
  17.     <dimen name="new_blog_size">70.0dip</dimen>  
  18.     <dimen name="emotion_item_view_height">13.299988dip</dimen>  
  19.     <dimen name="splash_test_top_margin_top">20.0dip</dimen>  
  20.     <dimen name="splash_test_center_margin_right">0.0dip</dimen>  
  21.     <dimen name="title_text_size">20.0sp</dimen>  
  22.     <dimen name="normal_padding_length">10.0dip</dimen>  
  23.     <dimen name="no_result_padding_length">50.0dip</dimen>  
  24.   
  25. </resources>  
Copyright © Linux教程網 All Rights Reserved