转自:http://www.cnblogs.com/asion/p/3339313.html
  作者:Asion Tang


 
TabHost
命名空间:
android.widget.TabHost
初始化函数(必须在addTab之前调用):
setup();
包含两个子元素:
1.Tab标签容器TabWidget(@android:id/tabs)
2.Tab内容容器FrameLayout(@android:id/tabcontent) FragmentTabHost
命名空间:
android.support.v4.app.FragmentTabHost
android.support.v13.app.FragmentTabHost
初始化函数(必须在addTab之前调用):
setup(this, getSupportFragmentManager(), R.id.realtabcontent);
包含三个子元素:
1.Tab标签 容器TabWidget(@android:id/tabs)
2.Tab内容 容器FrameLayout [宽高皆为0dp](@android:id/tabcontent)
3.Tab内容 容器FrameLayout [真正的容器](@+id/RealTabContent) 疑问为什么同时存在TabContent 和 RealTabContent 两个FrameLayout?
答疑:《关于FragmentTabHost中TabWidget不能移到屏幕下面的Bug
http://blog.csdn.net/wklbeta/article/details/11329207 资料:《Android开发:使用Fragment改造TabActivity
http://www.blogjava.net/amplifier/archive/2012/12/27/393409.html 经验 - 实现Tab功能的几种方式
1.(废弃)继承自TabActivity + TabHost 布局 + Activity 内容
1.1:TabActivity为ActivityGroup[在版本13里被放弃]子类
1.2:使用getTabHost() 获得TabHost 对象
1.3:使用 newTabSpec(...).setContent(Intent) 添加Tab标签与内容 2.(废弃)继承自ActivityGroup + TabHost布局 + Activity 内容
2.1:ActivityGroup在版本13里被放弃
2.2:使用findViewById 获得TabHost 对象
2.3:使用setup(new LocalActivityManager(this, true))初始化
2.4:使用 newTabSpec(...).setContent(Intent) 添加Tab标签与内容 3.(简单)继承自FragmentActivity + FragmentTabHost 布局 + Fragment 内容
3.1:使用findViewById 获得FragmentTabHost 对象
3.2:使用setup(this, getSupportFragmentManager(), R.id.realtabcontent)初始化
3.3:使用addTab(newTabSpec().setIndicator(),Fragment.class, null) 添加Tab标签与内容 4.(复杂)继承自FragmentActivity + TabHost 布局 + ViewPager布局 + Fragment 内容
4.1:使用findViewById 获得TabHost 对象
4.2:使用setup()初始化
4.3:使用TabHost.addTab(tabSpec.setContent(DummyTabFactory));添加Tab标签与空内容
4.4:在TabHost.onTabChanged中控制ViewPager的实际显示
4.5:滑动时在ViewPager.onPageSelected 中控制Tab标签的选择。
PS:当Tab标签数量固定且不追求和系统保持一致的标签效果,的情况下这里的TabHost布局有些多余。
如 :特有应用需要的Tab标签固定,且有自己的一套显示效果,那么这里完全无需TabHost布局。
5.(DIY)继承自FragmentActivity + 自定义布局 + ViewPager布局 + Fragment 内容
5.1:自定义布局中嵌入固定Tab标签元素
5.2:在标签元素点击事件中控制ViewPager的实际显示
5.3:滑动时在ViewPager.onPageSelected 中控制标签元素的选择。

Android学习笔记:TabHost 和 FragmentTabHost(转)的更多相关文章

  1. Android 学习笔记之Volley(七)实现Json数据加载和解析...

    学习内容: 1.使用Volley实现异步加载Json数据...   Volley的第二大请求就是通过发送请求异步实现Json数据信息的加载,加载Json数据有两种方式,一种是通过获取Json对象,然后 ...

  2. Android学习笔记进阶之在图片上涂鸦(能清屏)

    Android学习笔记进阶之在图片上涂鸦(能清屏) 2013-11-19 10:52 117人阅读 评论(0) 收藏 举报 HandWritingActivity.java package xiaos ...

  3. android学习笔记36——使用原始XML文件

    XML文件 android中使用XML文件,需要开发者手动创建res/xml文件夹. 实例如下: book.xml==> <?xml version="1.0" enc ...

  4. Android学习笔记之JSON数据解析

    转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...

  5. udacity android 学习笔记: lesson 4 part b

    udacity android 学习笔记: lesson 4 part b 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 ...

  6. Android学习笔记36:使用SQLite方式存储数据

    在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...

  7. Android学习笔记之Activity详解

    1 理解Activity Activity就是一个包含应用程序界面的窗口,是Android四大组件之一.一个应用程序可以包含零个或多个Activity.一个Activity的生命周期是指从屏幕上显示那 ...

  8. Pro Android学习笔记 ActionBar(1):Home图标区

     Pro Android学习笔记(四八):ActionBar(1):Home图标区 2013年03月10日 ⁄ 综合 ⁄ 共 3256字 ⁄ 字号 小 中 大 ⁄ 评论关闭 ActionBar在A ...

  9. 【转】Pro Android学习笔记(九八):BroadcastReceiver(2):接收器触发通知

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.sina.com.cn/flowingflying或作者@恺风Wei-傻瓜与非傻瓜 广播接 ...

  10. 【转】 Pro Android学习笔记(九二):AsyncTask(1):AsyncTask类

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在Handler的学习系列中,学习了如何h ...

随机推荐

  1. 数理方程:Laplace变换 & 留数(更新中)

    更新:25 APR 2016 Laplace变换 设函数\(f(t)\)在\(t>0\)时有定义,积分 \(F(s)=\int_0^{+\infty}f(t)e^{-st}dt \qquad ( ...

  2. Table of Contents - 设计模式

    设计原则 OCP - 开闭原则 SRP - 单一职责原则 DIP - 依赖倒置原则 ISP - 接口隔离原则 LSP - 里氏替换原则 LoD - 迪米特法则 创建型模式 工厂方法模式 抽象工厂模式 ...

  3. 解决 Oracle em 无法打开的问题

      重建em emca -deconfig dbcontrol db -repos drop 删除 emca -config dbcontrol db -repos create 创建 set ora ...

  4. Android Studio 1.3新版体验

    Google发布的Android Studio最新版是 1.3 版,上周的I/O大会中三位Google工程师对Android Studio作了将近1小时的演讲: 之前一直习惯用Eclipse luna ...

  5. 让项目管理理论“落地”——读《IT项目经理成长手记》有感

    最近利用业余时间阅读了一本好书--<IT项目经理成长手记>(潘东.韩秋泉著).本书的两位作者是神州数码(中国本土最大的整合IT服务提供商)的高管,在书中他们介绍了神州数码在IT项目管理领域 ...

  6. JavaScript之返回顶部

    为了弄这个Hexo,今天又是坐在电脑面前待了一天( ⊙ o ⊙ ),老是出问题,在百度上也试验了很多方法,还是没弄好,诶...身心疲惫甚是乏累啊~~~ 算了,这个Hexo先不弄,还是安分点吧,在Hex ...

  7. 【转】K3Cloud 二次开发 单据转换系列

    Entity, EntryEntity, SubEntryEntity 这三个对象具有继承关系:Entity 是实体基类,用于定义各种实体的公共属性:EntryEntity 是单据体实体类,从Enti ...

  8. linux中利用iptables+geoip过滤指定IP

    1. 前提条件 iptables >= 1.4.5 kernel-devel >= 3.7 2.  安装依赖包  代码如下 复制代码 # yum install gcc gcc-c++ m ...

  9. centos安装与基本使用

    1.      插入安装光盘 2.      进入试用 3.      在试用的桌面系统选择安装到硬盘 4.      选择安装语言 5.      选择基本存储或者专门的存储设备 6.      - ...

  10. ASP.NET发布WebService

    1. 创建一个空的Web应用程序 2. 再添加一个Web服务 3. 在所创建Web服务内,编写一算法 4. 写完可直接运行查看结果 5. 项目->右键,发布此WebService 6.  发布至 ...