文档章节

Tab形式的菜单实现总结TabHost 和 FragmentTabHost

k
 kim366
发布于 2016/05/13 19:24
字数 573
阅读 10
收藏 1

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 中控制标签元素的选择。

本文转载自:http://blog.csdn.net/oyangyujun/article/details/44177189

共有 人打赏支持
k
粉丝 1
博文 129
码字总数 0
作品 0
朝阳
私信 提问
Fragment 结合FragmentTabHost使用心得

FragmentTabHost我也不知道是什么,就是可用用来当新浪微博底部那个状态栏的工具。现在说下怎么使用 首先activity要继承FragmentActivity 例如 public class A extends FragmentActivity{ /...

sw3458856
2014/05/06
0
0
android Tab页详解

一、android Tab的实现方式总结 说起Tab页,基本每个做移动端的都会需要。iOS中内置了一个,所以ioser用起来很方便。而android这一块就比较乱。 木器实现Tab效果的方式,主要有4种,下面分别...

微笑的江豚
2016/07/22
68
0
TabLayout 与 FragmentTabHost

TabLayout 与 FragmentTabHost Android提供实现Tab样式的控件大致有TabActivity、FragmentTabHost、TabLayout。而TabActivity已经过时,这里就不在多说,主要提 一下Tablayout与FragmentTab...

冰色
2016/01/08
568
0
FragmentTabHost的简单使用tab例子

效果图示例: 1、res/layout下2个布局activitymain.xml和textview.xml textview.xml布局 代码 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="ht......

初来小修
2016/02/15
92
0
Android重写FragmentTabHost来实现状态保存

分类: android 2014-06-27 17:57 2077人阅读 评论(0) 收藏 举报 FragmentTabHost 最近要做一个类似QQ底部有气泡的功能,试了几个方案不太好,我想很多开发者使用TabHost都会知道它不保存状态...

andyhe91
2014/12/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Impala和Hive集成Sentry、Kerberos认证

关于 Kerberos 的安装和 HDFS 配置 kerberos 认证,请参考 HDFS配置kerberos认证。 关于 Kerberos 的安装和 YARN 配置 kerberos 认证,请参考 YARN配置kerberos认证。 关于 Kerberos 的安装和...

hblt-j
5分钟前
0
0
Ubuntu 18.04 PostgreSQL 11 apt 默认安装某些问题解析

首先默认安装软件(本文以PostgreSQL 11.1为例,其他版本类似)。 sudo apt install postgresql-11 等待软件自动安装并完成配置,启动服务。 服务状态如下: vmware@vmware-virtual-machine:...

白豆腐徐长卿
18分钟前
1
0
一步步动手实现高并发的Reactor模型 —— Kafka底层如何充分利用多线程优势去处理网络I/O与业务分发

一、从《Apeche Kafka源码剖析》上搬来的概念和图 Kafka网络采用的是Reactor模式,是一种基于事件驱动的模式。熟悉Java编程的读者应该了解Java NIO提供了Reactor模式的API。常见的单线程Jav...

Anur
21分钟前
1
0
数字信号处理各种处理及图象

https://wenku.baidu.com/view/b1bb67f1f90f76c661371a75.html?sxts=1544696459935

whoisliang
24分钟前
1
0
rabbitmq学习

使用docker安装rabbit docker run -d --hostname my-rabbit --name rabbit -p 8080:15672 rabbitmq:management--hostname:指定容器主机名称--name:指定容器名称-p:将mq端口号映射到本地...

元谷
40分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部