1,布局

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/frgmt_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF" > <TabHost
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="true" > <RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@android:id/tabs"> <!-- 注意此句,如果没有此句,当tab1,tab2...过高时,会TabWidget会盖住 -->
<!-- tab1,用include可以引用别处的layout -->
<include
android:id="@+id/tab_weixin"
android:layout_width="match_parent"
android:layout_height="match_parent"
layout="@layout/tab_weixin_layout" />
<!-- tab2,用include可以引用别处的layout -->
<include
android:id="@+id/tab_contacts"
android:layout_width="wrap_content"
android:layout_height="match_parent"
layout="@layout/tab_contacts_layout" />
<!-- tab3,用include可以引用别处的layout -->
<include
android:id="@+id/tab_discovery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
layout="@layout/tab_discovery_layout" />
<!-- tab4,用include可以引用别处的layout -->
<include
android:id="@+id/tab_me"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
layout="@layout/tab_me_layout" />
</FrameLayout>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#E0E0E0"
android:layout_alignParentBottom="true"
android:showDividers="none" >
</TabWidget>
</RelativeLayout>
</TabHost>
</FrameLayout>

2,在代码中初始化tab栏

     void initTabHostTabs(LayoutInflater inflater){

         tabHost.setup();

         ScaleDrawable scale ;
TabSpec tab = tabHost.newTabSpec("weixin");
View tabView1 = inflater.inflate(R.layout.tab_indicator, null, false);
TextView tabTitle = (TextView) tabView1.findViewById(R.id.tab_title);
tabTitle.setText(R.string.tab_weixin);
ImageView tabIcon = (ImageView) tabView1.findViewById(R.id.tab_icon);
tabIcon.setImageResource(R.drawable.tab_weixin_scale);
scale = (ScaleDrawable) tabIcon.getDrawable();
scale.setLevel(); tab.setIndicator(tabView1);
tab.setContent(R.id.tab_weixin);
tabHost.addTab(tab); tab = tabHost.newTabSpec("contacts");
View tabView2 = inflater.inflate(R.layout.tab_indicator, null, false);
tabTitle = (TextView) tabView2.findViewById(R.id.tab_title);
tabTitle.setText(R.string.tab_contacts);
tabIcon = (ImageView) tabView2.findViewById(R.id.tab_icon);
tabIcon.setImageResource(R.drawable.tab_contacts_scale);
scale = (ScaleDrawable) tabIcon.getDrawable();
scale.setLevel(); tab.setIndicator(tabView2);
tab.setContent(R.id.tab_contacts);
tabHost.addTab(tab); tab = tabHost.newTabSpec("discovery");
View tabView3 = inflater.inflate(R.layout.tab_indicator, null, false);
tabTitle = (TextView) tabView3.findViewById(R.id.tab_title);
tabTitle.setText(R.string.tab_discovery);
tabIcon = (ImageView) tabView3.findViewById(R.id.tab_icon);
tabIcon.setImageResource(R.drawable.tab_discovery_scale);
scale = (ScaleDrawable) tabIcon.getDrawable();
scale.setLevel(); tab.setIndicator(tabView3);
tab.setContent(R.id.tab_discovery);
tabHost.addTab(tab); tab = tabHost.newTabSpec("me");
View tabView4 = inflater.inflate(R.layout.tab_indicator, null, false);
tabTitle = (TextView) tabView4.findViewById(R.id.tab_title);
tabTitle.setText(R.string.tab_me);
tabIcon = (ImageView) tabView4.findViewById(R.id.tab_icon);
tabIcon.setImageResource(R.drawable.tab_me_scale);
scale = (ScaleDrawable) tabIcon.getDrawable();
scale.setLevel(); tab.setIndicator(tabView4);
tab.setContent(R.id.tab_me);
tabHost.addTab(tab); /* 测试可以向右划动tab
for (int i = 0; i < 5; i++) {
tab = tabHost.newTabSpec("more" + i);
tab.setIndicator("more" + i);
tab.setContent(R.id.tab_me);
tabHost.addTab(tab);
}
*/
}

Android 常用UI控件之TabHost(2)简单示例的更多相关文章

  1. Android 常用UI控件之TabHost(5)Tab栏在底部且在最上层也不盖tab页

    tab栏在底部 <TabHost android:id="@android:id/tabhost" android:layout_width="match_pare ...

  2. Android 常用UI控件之TabHost(1)TabHost的两种布局方式

    TabHost是Android中的tab组件. TabHost布局文件的基本结构 TabHost下有个layout,这个layout中有TabWidget与FrameLayout.TabWidget是 ...

  3. Android 常用UI控件之TabHost(4)实现当Tab栏有多个tab时,可以左右滑动

    <!-- <HorizontalScrollView android:id="@+id/horizontalScrollView1" android:layout_wi ...

  4. Android 常用UI控件之TabHost(3)在4.0不显示图标的解决方案

    1,自定义 TabWidget 上每个tab的view 2,用多个图片

  5. Android 常用UI控件之Tab控件的实现方案

    实现Tab的方式有多种 1,ActionBar有两种模式可以实现,但是已经过期 tab模式tab在顶部,分裂模式tab在底部(同时所有action item都在底部). 2,PagerTitleStr ...

  6. 【风马一族_Android】第4章Android常用基本控件

    第4章Android常用基本控件 控件是Android用户界面中的一个个组成元素,在介绍它们之前,读者必须了解所有控件的父类View(视图),它好比一个盛放控件的容器. 4.1View类概述 对于一个 ...

  7. [置顶] Android常用适配器控件

    Android常用适配器控件 列表控件用于显示数据集合,Android不是使用一种类型的控件管理显示和数据,而是将这两项功能分布用列表控件和适配器来实现.列表控件扩展了android.widget.A ...

  8. [Android] Android 让UI控件固定于底部的几种方法

    Android 让UI控件固定于底部的几种方法1.采用linearlayout布局:android:layout_height="0dp" <!-- 这里不能设置fill_p ...

  9. widget 常用UI控件介绍

        一.单选框 单选框实例程序: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&q ...

随机推荐

  1. 40个Java集合面试问题和答案【下】【转载】

    接上文:http://www.cnblogs.com/xujianbo/p/5148083.html 28.哪些集合类是线程安全的? Vector.HashTable.Properties和Stack ...

  2. ASP.NET 常识

    1..NET是什么?         .Net全称.NET Framework是一个开发和运行环境,         该战略是微软的一项全新创意,         它将使得"互联网行业进入一 ...

  3. 转:jQuery对象与dom对象的转换

    jQuery对象与dom对象的转换 发布时间:September 20, 2007 分类:JavaScript <新站上线的手记> <Discuz!多附件上传选择框之jQuery版& ...

  4. 解决VS2012【加载......符号缓慢】的问题

    http://blog.csdn.net/shi0090/article/details/19411777 最近在用VS2012调试时,经常出现"加载......符号缓慢的问题", ...

  5. enum 与 #define

    enum 与 #define 一.为什么既要有enum,又要define enum is derived from enumerate, from ex- + number,字面意思就是用数字排列,报 ...

  6. How to: Change icon in Inno Setup

    1. Change the installer executable icon or the icon showed in Start Menu folder Using SetupIconFile ...

  7. ubuntu lua安装

    #解压 tar -xzvf lua5.2.2.tar.gz #进入lua5.2.2文件夹 cd lua5.2.2 #执行make sudo make linux #提示如下错误: #lua.c:67: ...

  8. Qt多文档界面应用设计

    使用Qt编写多文档界面(MDI)应用相当方便,主要会使用到QMdiArea和QMdiSubWindow两个类.可以查看Qt Asistant中这两个类的说明文档,里面介绍的相当详细.另外,可以搜索例程 ...

  9. JS 日期格式转换

    //Json 数据年月日 返回 直接传入参数 如/Date(1379433600000)/ function GetDate(date) { if (date == null) return null ...

  10. postal.js使用

    requirejs.config({ //默认情况下模块所在目录为js/lib baseUrl: './', //当模块id前缀为app时,他便由js/app加载模块文件 //这里设置的路径是相对与b ...