TAB放置界面底部

 

package com.TabTest2;

import java.lang.reflect.Field;

import android.app.Activity;

import android.os.Build;

import android.R;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.widget.TabHost;

import android.widget.TabWidget;

import android.widget.TextView;

import android.widget.TabHost.OnTabChangeListener;

 

public class TabTest2 extends Activity {

    public void onCreate(Bundle icicle) {   

        super.onCreate(icicle);   

        setContentView(com.TabTest2.R.layout.main);   

        final TabHost tabs=(TabHost)findViewById(com.TabTest2.R.id.tabhost);   

        final TabWidget tabWidget=(TabWidget) findViewById(R.id.tabs);

        int width =45;

        int height =48;

        Field mBottomLeftStrip;

        Field mBottomRightStrip;

        tabs.setup();   

 

 

 

        tabs.addTab(tabs.newTabSpec("first tab")

                .setIndicator("news",getResources().getDrawable(com.TabTest2.R.drawable.c))

                .setContent(com.TabTest2.R.id.tab1));

        tabs.addTab(tabs.newTabSpec("second tab")

                .setIndicator("help",getResources().getDrawable(com.TabTest2.R.drawable.e))

                .setContent(com.TabTest2.R.id.tab2));

        tabs.addTab(tabs.newTabSpec("third tab")

                .setIndicator("setting",getResources().getDrawable(com.TabTest2.R.drawable.efg))

                .setContent(com.TabTest2.R.id.tab2));

 

        tabs.setCurrentTab(0);  

 

 

        for (int i =0; i <tabWidget.getChildCount(); i++) {

            /**

             * 設置高度、寬度,不過寬度由於設置爲fill_parent,在此對它沒效果

             */

            tabWidget.getChildAt(i).getLayoutParams().height = height;

            tabWidget.getChildAt(i).getLayoutParams().width = width;

 

 

         /**

          * 設置tab中標題文字的顏色,不然默認爲黑色

          */

          final TextView tv = (TextView) tabWidget.getChildAt(i).findViewById(android.R.id.title);

 

          tv.setTextColor(this.getResources().getColorStateList(android.R.color.white));

 

 

 

 

            /**

             * 此方法是爲了去掉系統默認的色白的底角

             *

             * 在 TabWidget中mBottomLeftStrip、mBottomRightStrip

             * 都是私有變量,但是我們可以通過反射來獲取

             *

             * 由於還不知道Android 2.2的接口是怎麼樣的,現在先加個判斷好一些

             */

      if (Float.valueOf(Build.VERSION.RELEASE) <= 2.1) {

               try {

                  mBottomLeftStrip = tabWidget.getClass().getDeclaredField ("mBottomLeftStrip");

                  mBottomRightStrip = tabWidget.getClass().getDeclaredField ("mBottomRightStrip");

                  if(!mBottomLeftStrip.isAccessible()) {

                    mBottomLeftStrip.setAccessible(true);

                  }

                  if(!mBottomRightStrip.isAccessible()){

                    mBottomRightStrip.setAccessible(true);

                  }

                 mBottomLeftStrip.set(tabWidget, getResources().getDrawable (com.TabTest2.R.drawable.linee));

                 mBottomRightStrip.set(tabWidget, getResources().getDrawable (com.TabTest2.R.drawable.linee));

 

               } catch (Exception e) {

                 e.printStackTrace();

               }

         } else {

 

         }

        View vvv = tabWidget.getChildAt(i);

  if(tabs.getCurrentTab()==i){

          vvv.setBackgroundDrawable(getResources().getDrawable(com.TabTest2.R.drawable.shine));

  }

  else {

          vvv.setBackgroundDrawable(getResources().getDrawable(com.TabTest2.R.drawable.seven));

  }

 

        }

 

        /**

         * 當點擊tab選項卡的時候,更改當前的背景

         */

        tabs.setOnTabChangedListener(new OnTabChangeListener(){

   @Override

   public void onTabChanged(String tabId) {

    // TODO Auto-generated method stub

    for (int i =0; i < tabWidget.getChildCount(); i++) {

     View vvv = tabWidget.getChildAt(i);

     if(tabs.getCurrentTab()==i){

             vvv.setBackgroundDrawable(getResources().getDrawable(com.TabTest2.R.drawable.shine));

     }

     else {

             vvv.setBackgroundDrawable(getResources().getDrawable(com.TabTest2.R.drawable.seven));

     }

    }

   }});

 

 

    }   

 

 

}

 

 

 

 

<?xml version="1.0" encoding="utf-8"?>  

<LinearLayout  

    xmlns:android="http://schemas.android.com/apk/res/android"  

    android:orientation="vertical"  

    android:layout_width="fill_parent"  

    android:layout_height="fill_parent">  

    <TabHost  

        android:id="@+id/tabhost"  

        android:layout_width="fill_parent"  

        android:layout_height="fill_parent">  

        <FrameLayout  

            android:id="@android:id/tabcontent"  

            android:layout_width="fill_parent"  

            android:layout_height="fill_parent"  

            android:paddingBottom="62px">  

            <AnalogClock  

                android:id="@+id/tab1"  

                android:layout_width="fill_parent"  

                android:layout_height="fill_parent"  

                android:layout_centerHorizontal="true" />  

            <Button  

                android:id="@+id/tab2"  

                android:layout_width="fill_parent"  

                android:layout_height="fill_parent"  

                android:text="A semi-random button" />  

        </FrameLayout>  

        <RelativeLayout  

            android:layout_width="fill_parent"  

            android:layout_height="fill_parent">  

            <TabWidget  

                android:id="@android:id/tabs"  

                android:layout_alignParentBottom="true"  

                android:layout_width="fill_parent"  

                android:layout_height="60px" />  

        </RelativeLayout>  

    </TabHost>  

</LinearLayout>  

 

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/oceanZhao/archive/2011/05/10/6409015.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章