android 自定义TabActivity的实例方法


一、改变Tab栏的位置。
java代码。在TabActivity的oncreate方法中添加
setContentView(R.layout.tab_host);

其中 Layout tab_host.xml 是从系统资源文件中抠出来之后略作修改。
系统原来的 tab_host.xml内容如下

复制代码 代码如下:


    android:layout_width="match_parent" android:layout_height="match_parent">
            android:layout_width="match_parent" android:layout_height="match_parent">
                    android:layout_height="wrap_content" android:layout_weight="0" />
                    android:layout_width="match_parent" android:layout_height="0dip"
            android:layout_weight="1"/>
   


要实现TAB栏在页面下方,只需简单修改。

复制代码 代码如下:


         android:layout_width="fill_parent" android:layout_height="fill_parent">
                android:layout_width="fill_parent" android:layout_height="fill_parent">
                                  android:layout_width="fill_parent" android:layout_height="0dip"
            android:layout_weight="1"/>
                       android:layout_height="wrap_content" android:layout_weight="0" />
        

 


这样,就实现了TAB栏在页面下册。需要注意的是,view的id不要修改。

二、自定义TAB的图片。系统自带的tab_indicator.xml内容如下

复制代码 代码如下:


    android:layout_width="0dip"
    android:layout_height="64dip"
    android:layout_weight="1"
    android:layout_marginLeft="-3dip"
    android:layout_marginRight="-3dip"
    android:orientation="vertical"
    android:background="@android:drawable/tab_indicator">

            android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
    />

            android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        style="?android:attr/tabWidgetStyle"
    />


可以看出,默认情况下,图标在文字上方,并且不能占到整个格,无法满足设计需要。因此可以重写该Layout。
编写tab_in.xml

复制代码 代码如下:


      android:layout_width="wrap_content"
     android:layout_height="64dip"
     android:orientation="vertical"
     >


View view1 = inflater.inflate(R.layout.tab_in, null);;
        View view2 = inflater.inflate(R.layout.tab_in, null);;
        View view3 = inflater.inflate(R.layout.tab_in, null);;

       

        view1 .setBackgroundResource(R.drawable.record_upload_button_stateful);
        view2 .setBackgroundResource(R.drawable.record_download_button_stateful);
        view3 .setBackgroundResource(R.drawable.record_receive_button_stateful);
tabHost.addTab(tabHost
                .newTabSpec("view1")
                .setIndicator(view1)             
          );

        tabHost.addTab(tabHost
                .newTabSpec("view2")
                .setIndicator(view2)
        );

      
        tabHost.addTab(tabHost
                .newTabSpec("view3")
                .setIndicator(view3)
             );

你可能感兴趣的:(android 自定义TabActivity的实例方法)