Android界面开发中的面板控件Tab

fanleiym 2010-12-30

在手机有限的屏幕里面,有时候我们要安排较多的内容可能无法容纳,当然我们可以使用版面的滚动功能,但是这样做显得不是很好看,而且有时候我们需要对不同功能集合的控件集中在各自的面板中,这就需要使用面板Tab控件了。

面板控件的好处是能在一个界面上同时显示不同的面板内容,通过面板标签方便的切换到不同的面板上面,下面ATAAW.COM开始介绍这个Tab控件的使用,为了直观起见,我们直接从例子介绍Tab控件的两种显示方法。

布局文件中定义两个Tab中显示的内容,这里以TextView为例。

<?xml version="1.0" encoding="utf-8"?>

<FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"android:layout_height="fill_parent">

<!–Tab1中显示的内容–>

<TextViewandroid:id="@+id/content1"android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:text="tab1content"/>

<!–Tab2中显示的内容–>

<TextViewandroid:id="@+id/content2"android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:text="tab2content"/>

</FrameLayout>

在程序中使用Tab并调用布局中的控件:

public class _Tab extends TabActivity {

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

TabHosttabHost=getTabHost();

LayoutInflater.from(this).inflate(R.layout.tab,tabHost.getTabContentView(),true);

//Tab1的内容

tabHost.addTab(tabHost.newTabSpec("tab1")

.setIndicator("tab1",getResources().getDrawable(R.drawable.p1))

.setContent(R.id.view1));

//Tab2的内容

tabHost.addTab(tabHost.newTabSpec("tab2")

.setIndicator("tab2",getResources().getDrawable(R.drawable.p1))

.setContent(R.id.view2));

//Tab3的内容(用指定的Activity来设置Tab的内容)

tabHost.addTab(tabHost.newTabSpec("tab3")

.setIndicator("tab3",getResources().getDrawable(R.drawable.p1))

.setContent(newIntent(this,_TextView.class)));

}

}

由以上例子可见,Tab的使用主要的方法有addTab、setIndicator、setContent,另外,除了使用布局文件来定义Tab中显示的内容,还可以直接把另一个Activity作为Tab的内容显示,使得每个Tab面板的内容独立开来。

相关推荐