先看效果:

        京東商城底部菜單欄

      新浪微博底部菜單欄

本次學習效果圖:

第一,主布局文件(啟動頁main.xml,位于res/layout目錄下)代碼
<?xml version="." encoding="utf-"?><TabHost xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:id="@+id/tabhost"><LinearLayout android:id="@+id/linear"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TabWidget android:id="@android:id/tabs"android:layout_width="fill_parent"android:layout_height="wrap_content"></TabWidget><FrameLayout android:id="@android:id/tabcontent"android:layout_width="fill_parent"android:layout_height="fill_parent"><LinearLayoutandroid:id="@+id/tab"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TextView android:id="@+id/tab_txt"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="center"android:text="你"/></LinearLayout><LinearLayoutandroid:id="@+id/tab"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TextView android:id="@+id/tab_txt"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="center"android:text="我"/></LinearLayout><LinearLayoutandroid:id="@+id/tab"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TextView android:id="@+id/tab_txt"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="center"android:text="他"/></LinearLayout><LinearLayoutandroid:id="@+id/tab"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TextView android:id="@+id/tab_txt"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="center"android:text="我們"/></LinearLayout></FrameLayout></LinearLayout></TabHost>
第二,創建顯示此TabWidget的布局tabmini.xml(位于res/layout目錄下)
<?xml version="." encoding="utf-"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="wrap_content"android:paddingTop="dp"android:paddingLeft="dp"android:paddingRight="dp"android:background="#CEC" ><TextView android:id="@+id/tab_label"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_centerInParent="true"android:gravity="center"android:textColor="#"android:textStyle="bold"android:background="@drawable/tabmini"/></RelativeLayout>
第三,在drawable里面創建一個selector,命名tabmini.xml,用來點擊TabHost的一個tab時TextView的變化
<?xml version="." encoding="utf-"?><selector xmlns:android="http://schemas.android.com/apk/res/android" ><item android:state_selected="true"android:drawable="@drawable/add_managebg_down"/> <item android:state_selected="false" android:drawable="@drawable/add_managebg"/></selector>
第四,java代碼,在Activity里實現TabHost
package com.example.androidtest____meihuatubiao;import android.app.Activity;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.widget.TabHost;import android.widget.TextView;public class Main extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);View niTab=(View)LayoutInflater.from(this).inflate(R.layout.tabmini, null);TextView niTxt=(TextView)niTab.findViewById(R.id.tab_label);niTxt.setText("ni");View woTab=(View)LayoutInflater.from(this).inflate(R.layout.tabmini, null);TextView woTxt=(TextView)woTab.findViewById(R.id.tab_label);woTxt.setText("wo");View taTab=(View)LayoutInflater.from(this).inflate(R.layout.tabmini, null);TextView taTxt=(TextView)taTab.findViewById(R.id.tab_label);taTxt.setText("ta");View weTab=(View)LayoutInflater.from(this).inflate(R.layout.tabmini, null);TextView weTxt=(TextView)weTab.findViewById(R.id.tab_label);weTxt.setText("we");TabHost tabs=(TabHost)findViewById(R.id.tabhost);tabs.setup();tabs.addTab(tabs.newTabSpec("niTab").setContent(R.id.tab).setIndicator(niTab));tabs.addTab(tabs.newTabSpec("woTab").setContent(R.id.tab).setIndicator(woTab));tabs.addTab(tabs.newTabSpec("taTab").setContent(R.id.tab).setIndicator(taTab));tabs.addTab(tabs.newTabSpec("weTab").setContent(R.id.tab).setIndicator(weTab));}}以上內容是小編給大家分享的Android程序開發之自定義設置TabHost,TabWidget樣式,希望對大家有所幫助!
新聞熱點
疑難解答