本文主要是介绍自定义竖型TabWidget,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原文地址:
这个方法叫做“以假乱真法”
先上图:
中心思想:把自带的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
这篇关于自定义竖型TabWidget的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!