|
Android 面板控件Tab
在手机有限的屏幕里面,有时候我们要安排较多的内容可能无法容纳,当然我们可以使用版面的滚动功能,但是这样做显得不是很好看,而且有时候我们需要对不同功能集合的控件集中在各自的面板中,这就需要使用面板Tab控件了。
面板控件的好处是能在一个界面上同时显示不同的面板内容,通过面板标签方便的切换到不同的面板上面,开始介绍这个Tab控件的使用,为了直观起见,我们直接从例子介绍Tab控件的两种显示方法。
布局文件中定义两个Tab中显示的内容,这里以TextView为例。
java代码: < ?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">
< !? Tab 1 中显示的内容 ?>
< TextView android:id="@+id/content1" android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="tab1 content" />
< !? Tab 2 中显示的内容 ?>
< TextView android:id="@+id/content2" android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="tab2 content" />
< /FrameLayout>
在程序中使用Tab并调用布局中的控件:
java代码: public class _Tab extends TabActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TabHost tabHost = getTabHost();
LayoutInflater.from(this).inflate(R.layout.tab, tabHost.getTabContentView(), true);
// Tab 1 的内容
tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("tab1", getResources().getDrawable(R.drawable.p1)).setContent(R.id.view1));
// Tab 2 的内容
tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("tab2", getResources().getDrawable(R.drawable.p1)).setContent(R.id.view2));
// Tab 3 的内容(用指定的 Activity来设置 Tab 的内容)
tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("tab3", getResources().getDrawable(R.drawable.p1)).setContent(new Intent(this, _TextView.class)));
}
}
由以上例子可见,Tab的使用主要的方法有addTab、setIndicator、setContent,另外,除了使用布局文件来定义Tab中显示的内容,还可以直接把另一个Activity作为Tab的内容显示,使得每个Tab面板的内容独立开来。 |
|