Android UI之Tab(TabActivity+TabHost實現)

來源:互聯網
上載者:User

標籤:android   tab   tabhost   tabactivity   

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. 


Android UI之Tab(TabActivity+TabHost實現)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.