TabHost組件可以在界面中存放多個(gè)選項(xiàng)卡, 很多軟件都使用了改組件進(jìn)行設(shè)計(jì)。
一、基礎(chǔ)知識(shí)
TabWidget : 該組件就是TabHost標(biāo)簽頁中上部 或者 下部的按鈕, 可以點(diǎn)擊按鈕切換選項(xiàng)卡;
TabSpec : 代表了選項(xiàng)卡界面, 添加一個(gè)TabSpec即可添加到TabHost中;
-- 創(chuàng)建選項(xiàng)卡 : newTabSpec(String tag), 創(chuàng)建一個(gè)選項(xiàng)卡;
-- 添加選項(xiàng)卡 : addTab(tabSpec);
二、實(shí)例講解
TabHost的基本使用,主要是layout的聲明要使用特定的id號(hào),然后activity繼承TabActivity即可。
main.xml:
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@android:id/tabhost" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".Main" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TabWidget android:id="@android:id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" > </TabWidget> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:id="@+id/tab1" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="aa" /> </LinearLayout> <LinearLayout android:id="@+id/tab2" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="bb" /> </LinearLayout> </FrameLayout> </LinearLayout></TabHost>
Main.java:
package com.app.main;import android.app.TabActivity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.TabHost;import android.widget.TabHost.OnTabChangeListener;import android.widget.TabHost.TabSpec;import android.widget.TabWidget;public class Main extends TabActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final TabHost tabHost = this.getTabHost(); TabSpec tab1 = tabHost.newTabSpec("tab1").setIndicator("tab1") .setContent(R.id.tab1); tabHost.addTab(tab1); TabSpec tab2 = tabHost.newTabSpec("tab2").setIndicator("tab2") .setContent(R.id.tab2); tabHost.addTab(tab2); }}實(shí)現(xiàn)效果:

其他:
當(dāng)點(diǎn)擊tabwidget的時(shí)候,若想注冊(cè)事件監(jiān)聽器,可以使用:
1.調(diào)用
tabHost.setOnTabChangedListener(new TabChangeListener(){ public void onTabChanged(String id) { }});這個(gè)傳入的id,就是tabwidget的indicator,這里是"tab1","tab2";
2.調(diào)用
tabWidget.getChildAt(0).setOnClickListener(new OnClickListener(){});以上就是本文的全部內(nèi)容,希望能給大家一個(gè)參考,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選