哎呀呀,,最近怎么搞?!!感觉学习进度实在太慢了,但是熬夜通宵宝宝实在是做不到啊!!!不知道大神们通宵码代码,第二天是怎么正常上班的?还是说大家都是自由职业者。。。小小的发个牢骚,实际上还是自己不够努力。。。废话不多说,今天简单了解一下TabHost吧。
一、TabHost是什么
TabHost是一个可以在界面中放置多个选项卡的控件,它可实现的效果图如下:
二、TabHost的常用组件
TabWidget:该组件就是TabHost标签页中上部或者下部的按钮,可以点击按钮切换选项卡。
TabSpec:代表了选项卡界面
newTabSpec(String tag) : 创建一个选项卡
addTab(tabSpec):添加选项卡
三、TabHost使用步骤(带例子)
1、定义布局:在XML文件中使用TabHost组件,并在其中定义一个FrameLayout选项卡内容。
在这一步,我是直接通过布局文件的Design功能把TabHost控件拖到布局中的,这样比较简单,当然,还是要仔细看一下布局代码。代码如下:
在布局文件中,TabHost可设置为Android自带的id,即:android:id="@android:id/tabhost",这样做的原因是可以直接在Activity中调用getTabHost()调用TabHost对象。
然后我们可以设置三个Activity:Tab1、Tab2、Tab3,并创建三个对应的布局文件activity_tab1、activity_tab2、activity_tab3。我们将三个布局文件中加入一个TextView写上一句话,用来区分三个布局。这里放上activity_tab1的代码:
2、继承TabActivity
即显示选项卡组件的Activity要继承TabActivity。我的选项卡直接放到了MainActivity中,所以MainActivity要继承TabActivity,如下图:
3、获取组件
通过调用getTabHost()方法,获取TabHost()对象。
4、创建添加选项卡
通过TabSpec创建添加选项卡,具体代码如下:
Activity的整体代码如下:
5、怎能不来看看效果
我隐藏了系统标题(具体做法可在我的博客中查看,其中有一篇文件专门讲了隐藏系统标题的几种方法)。最后效果如下:
注:如果想让选项卡按钮位于底部,可采用如下方法:
方法一、 1、将tabcontent和tabs交换位置
2、设置tabcontent的属性:android:layout_weight= "1"
方法二、1、将tabcontent和tabs交换位置
2、将tabs放到一个relativeLayout中,然后加上如下属性: android:layout_alignParentBottom="true"
方法三、1、将tabcontent和tabs交换位置(tabs移动到LinearLayout标签以下)
2、在tabcontent中加入属性:android:layout_gravity = "top"
3、在tabs中加入属性:android:layout_gravity = "bottom"
网友评论