今天在项目中遇到需要使用TabHost,在现在的APP中,这个组件被用到的频率很高,以前用过,但是现在忘记了,顺便写个Demo来熟悉一下用法。
TabHost有两种用法,一种是直接继承TabActivity,另外一种?就是不继承这个类直接写了,呵呵,下面先来看下第一种的使用方法,下面是Demo中需要用到的布局文件:
其中需要注意的地方是TabHost的ID和TabWidget以及Framlayout的ID都是固定的,否则会运行报错,笔者当时报错为:
至于为什么这样,我在网上查了一下,这是Android的源码当中有这三个组件,所以你的XML布局文件中也必须得有这三个组件并且ID也是这上面的三个。下面来看下Activity中的代码:
以上就是TabHost的第一种用法,下面我们继续来看TabHost的第二种用法:
其实第二种用法和第一种用法相差无几,在你的布局文件中必须要有TabHost,TabWidget,Framelayout,后两个的ID属性同上不能变,第一个的ID属性可以自己设置,然后在Activity中通过FindbyViewId找到TabHost,在进行添加addTab()方法之前,必须调用setup(),否则将会报出空指针异常错误,笔者就遇到2次最后才发现原来是没有调用这个方法导致,至于为什么,恐怕得去翻一下Android的源码才能得到答案,具体的代码这儿就不贴出来了,推荐一般使用第一种比较方便,相关的demo我会上传到CSDN,欢迎大家下载。http://download.csdn.net/detail/a491392040/6428883