TabHost是一种非常使用的组件,TabHost可以方便的在窗口上放置多个标签页,每个标签页相当于或得了一个与外部容器相同大小的组件摆放区域。
与TabHost 结合使用的组件
TabWidget:代表选项卡的标签条。
TabSpec:代表选项卡的一个Tab页面。
创建添加选项卡的方法:
newTabSpec():创建选项卡
addTab():添加选项卡
使用TabHost的步骤:
- 在界面布局中定义TabHost组件
- Activity继承TabActivity
- 调用TabActivity的getTabHost()方法获取TabHost
- 通过TabHost对象的方法来创建添加选项卡。
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
LinearLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
android:layout_width
=
"match_parent"
android:layout_height
=
"match_parent"
android:orientation
=
"vertical"
>
<
TabHost
android:layout_width
=
"match_parent"
android:layout_height
=
"match_parent"
android:id
=
"@android:id/tabhost"
android:layout_weight
=
"1"
>
<!--引用android系统已有的id-->
<
LinearLayout
android:layout_width
=
"match_parent"
android:layout_height
=
"match_parent"
android:orientation
=
"vertical"
>
<
TabWidget
android:id
=
"@android:id/tabs"
android:layout_width
=
"match_parent"
android:layout_height
=
"wrap_content"
></
TabWidget
>//代表选项卡的标签条。
<
FrameLayout
android:id
=
"@android:id/tabcontent"
android:layout_width
=
"match_parent"
android:layout_height
=
"match_parent"
>
<!--定义第一个标签页的内容-->
<
LinearLayout
android:id
=
"@+id/tab01"
android:orientation
=
"vertical"
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
>
<
TextView
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
android:text
=
"消息"
android:textSize
=
"30sp"
/>
</
LinearLayout
>
<
LinearLayout
android:id
=
"@+id/tab02"
android:orientation
=
"vertical"
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
>
<
TextView
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
android:text
=
"赛事"
android:textSize
=
"30sp"
/>
</
LinearLayout
>
<
LinearLayout
android:id
=
"@+id/tab03"
android:orientation
=
"vertical"
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
>
<
TextView
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
android:text
=
"我的页面"
android:textSize
=
"30sp"
/>
</
LinearLayout
>
</
FrameLayout
>
</
LinearLayout
>
</
TabHost
>
</
LinearLayout
>
注意:必须使用这样的,其他的id是错误的
android:id="@android:id/tabhost"
android:id="@android:id/tabs"
android:id="@android:id/tabcontent"
引用android系统已有的id
public
class
MainActivity
extends
TabActivity{ //Activity继承TabActivity
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
//
调用TabActivity的getTabHost()方法获取TabHostTabHost tabHost=getTabHost();
//创建第一个Tab页
TabHost.TabSpec tab1=tabHost.newTabSpec(
"tab1"
)
.setIndicator(
"赛事"
)
//设置标题
.setContent(R.id.tab01);
//添加第一个tab页
tabHost.addTab(tab1);
TabHost.TabSpec tab2=tabHost.newTabSpec(
"tab2"
)
.setIndicator(
"消息"
)
//设置标题
.setContent(R.id.tab02);
//添加第一个tab页
tabHost.addTab(tab2);
TabHost.TabSpec tab3=tabHost.newTabSpec(
"tab3"
)
.setIndicator(
"我"
)
//设置标题
.setContent(R.id.tab03);
//添加第一个tab页
tabHost.addTab(tab3);
}
}
时间: 2024-10-10 20:22:01