Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / 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>