本文主要是介绍tabhost学习精要,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天学习了 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。
这篇关于tabhost学习精要的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!