【Android 应用开发】Android - TabHost 选项卡功能用法详解
TabHost效果圖 :?
源碼下載地址 :?http://download.csdn.net/detail/han1202012/6845105? ? ??
.
作者?:萬境絕塵?
轉(zhuǎn)載請注明出處?:?http://blog.csdn.net/shulianghan/article/details/18233209
.
一. TabHost介紹
TabHost組件可以在界面中存放多個(gè)選項(xiàng)卡, 很多軟件都使用了改組件進(jìn)行設(shè)計(jì);
1. TabHost常用組件
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);
2. TabHost使用步驟
a. 定義布局 : 在XML文件中使用TabHost組件, 并在其中定義一個(gè)FrameLayout選項(xiàng)卡內(nèi)容;
b. 繼承TabActivity : 顯示選項(xiàng)卡組件的Activity繼承TabActivity;
c. 獲取組件 : 通過調(diào)用getTabHost()方法, 獲取TabHost對象;
d. 創(chuàng)建添加選項(xiàng)卡 : 通過TabHost創(chuàng)建添加選項(xiàng)卡;
3. 將按鈕放到下面
布局文件中TabWidget代表的就是選項(xiàng)卡按鈕, Fragement組件代表內(nèi)容;
設(shè)置失敗情況 : 如果Fragement組件沒有設(shè)置 android:layout_weight屬性, 那么將TabWidget放到下面, 可能不會(huì)顯示按鈕;
設(shè)置權(quán)重 : 設(shè)置了Fragment組件的權(quán)重之后, 就可以成功顯示該選項(xiàng)卡按鈕;
二. TabHost布局文件
1. 根標(biāo)簽及id
設(shè)置Android自帶id : XML布局文件中, 可以使用<TabHost> 標(biāo)簽設(shè)置, 其中的id 需要引用 android的自帶id :?android:id="@android:id/tabhost" ;
getHost()獲取前提 : 設(shè)置了該id之后, 在Activity界面可以使用 getHost(), 獲取這個(gè)TabHost 視圖對象;
示例 :?
<TabHostandroid:id="@android:id/tabhost"android:layout_width="match_parent"android:layout_height="match_parent" >
2. TabWidget組件
選項(xiàng)卡切換 : 該組件是選項(xiàng)卡切換按鈕, 通過點(diǎn)擊該組件可以切換選項(xiàng)卡;
設(shè)置android自帶id : 這個(gè)組件的id要設(shè)置成android的自帶id :?android:id="@android:id/tabs" ;
TabHost必備組件 : 該組件與FrameLayout組件是TabHost組件中必備的兩個(gè)組件;
切換按鈕下方顯示 : 如果想要將按鈕放到下面, 可以將該組件定義在下面, 但是注意,FrameLayout要設(shè)置android:layout_widget = "1";?
設(shè)置TabWidget大小 : 如果想要設(shè)置該按鈕組件的大小, 可以設(shè)置該組件與FrameLayout組件的權(quán)重;?
示例 :?
<TabWidget android:id="@android:id/tabs"android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="horizontal"/>
3. FrameLayout組件
組件作用 : 該組件中定義的子組件是TabHost中每個(gè)頁面顯示的選項(xiàng)卡, 可以將TabHost選項(xiàng)卡顯示的視圖定義在其中;
設(shè)置android自帶id : 這個(gè)組件的id要設(shè)置成android的自帶的id :?android:id="@android:id/tabcontent" ;
示例 :?
<FrameLayout android:id="@android:id/tabcontent"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_weight="1">
二. Activity方法
1. 獲取TabHost
獲取方法 : getHost();
前提 : 調(diào)用getHost()方法獲取TabHost組件的方法的前提是在布局文件中, 設(shè)置了android自帶的id?android:id="@android:id/tabhost" 才可以;
2. 創(chuàng)建選項(xiàng)卡
創(chuàng)建選項(xiàng)卡 : 調(diào)用TabHost組件的newTabHost(tag), 其中的tag是字符串, 即在選項(xiàng)卡的唯一標(biāo)識;
設(shè)置選項(xiàng)卡 :?
-- 設(shè)置按鈕名稱 :?setIndicator("叫獸");
-- 設(shè)置選項(xiàng)卡內(nèi)容 : setContent(), 可以設(shè)置視圖組件, 可以設(shè)置Activity, 也可以設(shè)置Fragement;
添加選項(xiàng)卡 : tabHost.add(spec), 傳入的參數(shù)是創(chuàng)建選項(xiàng)卡的TabSpec對象;
三 代碼?
XML布局文件 :?
<?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android"android:id="@android:id/tabhost"android:layout_width="match_parent"android:layout_height="match_parent" ><LinearLayout 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"android:orientation="horizontal"/><FrameLayout android:id="@android:id/tabcontent"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_weight="1"><LinearLayout android:id="@+id/alwayswet"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><ImageView android:scaleType="fitXY"android:layout_height="fill_parent"android:layout_width="fill_parent"android:src="@drawable/alwayswet"/></LinearLayout><LinearLayout android:id="@+id/isanimal"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><ImageView android:scaleType="fitXY"android:layout_height="fill_parent"android:layout_width="fill_parent"android:src="@drawable/isanimal"/></LinearLayout><LinearLayout android:id="@+id/nezha"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><ImageView android:scaleType="fitXY"android:layout_height="fill_parent"android:layout_width="fill_parent"android:src="@drawable/nazha"/></LinearLayout></FrameLayout></LinearLayout></TabHost>
Activity主界面代碼 :?
package shuliang.han.tabhost_test;import android.app.TabActivity; import android.os.Bundle; import android.widget.TabHost; import android.widget.TabHost.TabSpec;public class MainActivity extends TabActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.tabhost);TabHost tabHost = getTabHost();TabSpec page1 = tabHost.newTabSpec("tab1").setIndicator("叫獸").setContent(R.id.isanimal);tabHost.addTab(page1);TabSpec page2 = tabHost.newTabSpec("tab2").setIndicator("老濕").setContent(R.id.alwayswet);tabHost.addTab(page2);TabSpec page3 = tabHost.newTabSpec("tab3").setIndicator("哪吒").setContent(R.id.nezha);tabHost.addTab(page3);}}
.
作者?:萬境絕塵?
轉(zhuǎn)載請注明出處?:?http://blog.csdn.net/shulianghan/article/details/18233209
.
總結(jié)
以上是生活随笔為你收集整理的【Android 应用开发】Android - TabHost 选项卡功能用法详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 应用开发】Androi
- 下一篇: 【Android 应用开发】Androi