Tab标签页是UI设计时经常使用的UI控件,可以实现多个分页之间的快速切换,每个分页可以显示不同的内容。

TabHost相当于浏览器中标签页分布的集合,而Tabspec则相当于浏览器中的每一个分页面。在Android中,每一个TabSpec分布可以是一个组件,也可以是一个布局,然后将每一个分页装入TabHost中,TabHost即可将其中的每一个分页一并显示出来。

使用Tab标签页的一般步骤:
首先要设计所有的分页的界面布局
Activity继承TabActivity
调用TabActivity的getTabHost()方法获得TabHost对象
通过TabHost创建并添加Tab

实例:TabDemo
运行效果:

代码清单:
布局文件:tab.xml
<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent">    <TextView android:id="@+id/view1"        android:background="@drawable/blue"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:text="这里是Tab1里的内容。"/>    <TextView android:id="@+id/view2"        android:background="@drawable/red"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:text="这里是Tab2"/>    <TextView android:id="@+id/view3"        android:background="@drawable/green"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:text="Tab3"/></FrameLayout>

Java源代码文件:MainActivity.java
package com.rainsong.tabdemo;import android.app.TabActivity;import android.os.Bundle;import android.view.LayoutInflater;import android.widget.TabHost;public class MainActivity extends TabActivity{    TabHost mTabHost;    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        mTabHost = getTabHost();        LayoutInflater.from(this).inflate(R.layout.tab,                mTabHost.getTabContentView(), true);        mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("Tab1")                .setContent(R.id.view1));        mTabHost.addTab(mTabHost.newTabSpec("tab3").setIndicator("Tab2")                .setContent(R.id.view2));        mTabHost.addTab(mTabHost.newTabSpec("tab3").setIndicator("Tab3")                .setContent(R.id.view3));    }}



API知识点
public class
TabActivity
extends ActivityGroup

TabHost getTabHost()
Returns the TabHost the activity is using to host its tabs.

public abstract class
LayoutInflater
extends Object

Class Overview
Instantiates a layout XML file into its corresponding View objects.

static LayoutInflater from(Context context)
Obtains the LayoutInflater from the given context.

View inflate(int resource, ViewGroup root, boolean attachToRoot)
Inflate a new view hierarchy from the specified xml resource.

public class
TabHost
extends FrameLayout
implements ViewTreeObserver.OnTouchModeChangeListener

Known Direct Subclasses
FragmentTabHost

Class Overview

Container for a tabbed window view. This object holds two children: a set of tab labels that the user clicks to select a specific tab, and a FrameLayout object that displays the contents of that page.


FrameLayout getTabContentView()
Get the FrameLayout which holds tab content

void addTab(TabHost.TabSpec tabSpec)
Add a tab.

TabHost.TabSpec newTabSpec(String tag)
Get a new TabHost.TabSpec associated with this tab host.

public class
TabHost.TabSpec
extends Object

Class Overview
A tab has a tab indicator, content, and a tag that is used to keep track of it.
This builder helps choose among these options.
For the tab indicator, your choices are:
1) set a label
2) set a label and an icon
For the tab content, your choices are:
1) the id of a View
2) a TabHost.TabContentFactory that creates the View content.
3) an Intent that launches an Activity.

TabHost.TabSpec setIndicator(CharSequence label)
Specify a label as the tab indicator.


TabHost.TabSpec setContent(int viewId)

Specify the id of the view that should be used as the content of the tab.


更多相关文章

  1. [Android]应用界面创建控件的两种方式
  2. Android中Fragment碎片解析
  3. android手机短信发送
  4. Android布局之线性布局
  5. Android中View的绘制过程 onMeasure方法简述
  6. tablelayout布局内容居中的问题
  7. Android中ListView动态加载数据
  8. 学习android的好博客
  9. 关于Android的一些布局

随机推荐

  1. android平台下基于cmake编译链接ffmpeg-3
  2. Android(安卓)项目实践(二)——网络连接
  3. Android(安卓)4.0的图形硬件加速及绘制技
  4. 3D激光扫描三维重建——6.(android)系统框
  5. eclipse新建android工程出现This templat
  6. 猎头职位【互联网热招岗位整理—Android
  7. android AIDL服务
  8. Android(安卓)应用程序窗体显示状态操作(r
  9. Android与JS之间的互相调用交互(一)
  10. 64位ubuntu11.10使用git下载android源码