修炼-------------Android TabHost,TabWidget选项卡总结 Android之TabHost TabHost,个人理解为选项卡的容器,是一种特殊的FrameLayout布局(帧布局) 根据SDK文档, Container for a tabbed window view. This object holds two children: a set of tab labels that the user clicks to select a specific tab, and a FrameLayout object that displays the contents of that page. The individual elements are typically controlled using this container object, rather than setting values on the child elements themselves。 TabHost主要由两部分组成,标签和内容,其中内容是一个FrameLayout,当用户单击不同的标签可以显示不同的内容。使用标签可以达到分页的效果,是页面的内容更加丰富,更加具有亲和力,当然与此同时,也会增加页面的复杂程度. 一个简单的TabHost布局 1.首先继承 TabActivity 2.通过 TabActivity的getTabHost()方法得到一个TabHost对象 3.定义选项卡的内容(是一个FrameLayout的对象),并与 TabHost绑定起来 可以通过一下语句绑定 TabHost容器的内容 LayoutInflater.from(this).inflate(R.layout.main, tabHost.getTabContentView(), true); 4.添加选项卡及设置选项的标题及内容 我们知道添加选项卡需要指定一个TabSpec对象,通过 TabHost的newTabSpec(选项卡的标识)可以得到,并且可以设定选项卡的标题(可以设置图片),并且设置选项卡内容,如 tabHost.addTab(tabHost.newTabSpec("tab01") .setIndicator("标签 1",getResources().getDrawable(R.drawable.icon)) .setContent(R.id.tab01)); ... 效果图: 源码: tabtest01.zip (43.15 KB, 下载次数: 4) 初学者注意了: 如果在 继承了TabActivity的类中设置了,setContentView(R.layout.main),则有可能导致错误,原因可能是因为main布局文件设置不正确(下面有详解),解决办法是建议先删除此行 上面的例子中TabHost只是与一个布局容器绑定,也就是说各个选项卡的内容是写在一个布局文件中的,然后通过不同的id来区分各个选项卡的内容. 如果选项卡的个数过多,或者每个选项卡的布局比较复杂的话,势必会使布局容器显得臃肿而且可读性比较差,不利于后期的维护。 Android中提供了我们还可以通过setContent(Intent intent)来指定每个选项卡的内容 源码: 有时候我们需要将选项卡的标题...