这个方法叫做“以假乱真法”
先上图:

中心思想:把自带的TabWidget隐藏,自己创建一个左侧的竖型tab栏,添加tab监听,以此实现竖型tabwidget
第一步,创建menu.xml布局文件
<TabHost android:id="@android:id/tabhost">
<TabWidget android:id="@android:id/tabs" android:visibility="gone"
<LinearLayout ></LinearLayout>
<FrameLayout android:id="@android:id/tabcontent"/>
</TabHost>
从id的取名就可以大致看出TabHost、TabWidget、FrameLayout各自的作用
TabWidget--用来定义选项卡,此法里面一定要有这句话android:visibility="gone"
FrameLayout--用来显示选项卡对应的内容,通常是一些Activity
中间的<LinearLayout>节点就有意思了,这个是“以假乱真”的关键。左侧竖型tab就是在这个里面定义的
第二步,创建每个Activity的xml文件
这里所说的Activity就是要包含进右侧frameLayout中的Activity
第三步,代码实现tabWidget初始化
// 得到TabHost对象
tabHost=
getTabHost();
Intent intent1 =newIntent(this,
MenuSetActivity.class);
// 第一个参数是用来指定标签的;
// 第二个参数是显示到页面上的tag,在这里不会显示到页面,因为设置visibility
gone;
// 第三个参数是选项卡内容
spec1=tabHost.newTabSpec(SETTAG).setIndicator(SETTAG).setContent(intent1);
tabHost.addTab(spec1);
第四步,添加监听
@Override
publicvoidonClick(View
v) {
intcheckedId
= v.getId();
if(currentId==
checkedId){
//当点击的tab与当前tab一致时,返回
return;
}
switch(checkedId)
{
caseR.id.systemset_set_text:
setCurrentTabByTag(SETTAG);
break;
}
setCurrentTabByTag就是根据当前的tag去查找相应的tab