tabhost学习精要

来源:互联网 发布:火车票代理软件 编辑:程序博客网 时间:2024/06/03 09:25
今天学习了 tabhost类  


1.系统自动添加了 相对布局的代码  我们在视图布局中 在composite中直接拖动tabhost到界面上

2.把相对布局的命名空间复制粘贴到tabhost,把tabhost中的关于相对布局的代码删掉,再删除顶部的相对布局的代码和底部的标签,让tabhost直接做布局,(也可以在空布局中添加tabhost 但是会自动添加的代码很少)。此时会报告错误,是因为没有方向的问题,我们删掉这三个线性布局,在视图中顶部显示tablabel

3.我们习惯把tabwidget放到屏幕的底部。由于我们的tabwidget和framelayout被包含在里linearlayout里面 所以我们交互他们两个的位置,此时发现屏幕中空白,这貌似是framelayout覆盖了tabwidget。

4.于是我们还需要一个参数是 android:layout_weight="1" 此语句添加到framelayout中,这个参数用来分配属于空间的一个属性,可以设置他的权重,此值默认为0。所以相当于两个framelayout:tabwidget=1:0,有人认为framelayout会铺满屏幕,其实不是这样子的,是因为tabwidget的android:layout_height="wrap_content"  屏幕空间-tabwidget的空间=剩余空间,此剩余空间全部赋予给framelayout,这是理解这个参数的重要的理论。英文原话In your vertical LinearLayout, put the FrameLayout above the TabWidget;Set layout_width to "wrap_content" on both FrameLayout and TabWidget;Set FrameLayout's *android:layout_weight="1";Set TabWidget's  android:layout_weight="0"*(0 is default, but for emphasis, readability, etc)

5.于是我们发现在视图中底部显示tablabel。

6.接下来我们可以弄java代码写功能了,首先说明 你的activity可以继承 TabActivity 或者也可以就是Activity  这是两种不同的方法,我个人赞成后者  因为前者This class was 

deprecated in API level 13.并且前者不灵活所以我们推荐使用一种更灵活的后者。

7.tabhost必须包含一个tabwidget和framelayout(不是仅仅包含一个,可以包括好几个 但最少一个)且tabwidget ID必须为@+id/tabs  framelayout ID必须为@+id/tabcontent,

貌似tabhost的ID可以变化 不过最好默认为@+id/tabhost。








0 0
原创粉丝点击