Android 之TabActivity
来源:互联网 发布:淘宝什么是实名认证 编辑:程序博客网 时间:2024/04/28 08:27
刚用到TabActivity,查了很多资料,总结一下。
1、TabActivity存在必要性以及google当时的困扰
a. 首先我们要明白一点,android系统是单窗口系统,不像windows是多窗口的(比如在windows系统上,我们可以一边聊QQ,一边斗地主等等)。也就是说,在一个时刻,android里面只有一个activity可以显示给用户。这样就大大降低了操作系统设计的复杂性(包括事件派发等等).
b. 但是像TabActivity那种效果又非常必要,用户体验也比较好。所以我觉得当时google开发人员肯定很纠结。 于是,一个畸形的想法产生了,就是在单窗口系统下加载多个activity,它就是TabActivity。
tab组件一般包括TabHost和TabWidget、FrameLayout,且TabWidget、FrameLayout属于TabHost。
2、TabActivity
首先Android里面有个名为TabActivity来给我们方便使用。其中有以下可以关注的函数:
public TabHost getTabHost () 获得当前TabActivity的TabHost
public TabWidget getTabWidget () 获得当前TabActivity 的TabWidget
public void setDefaultTab (String tag) 这两个函数很易懂, 就是设置默认的Tab
public void setDefaultTab (int index) 通过tab名——tag或者index(从0开始)
3、TabHost
那么我们要用到的Tab载体是TabHost,需要从TabActivity.getTabHost获取。
现在看看TabHost类,它有3个内嵌类:1个类TabHost.TabSpec,2个接口 TabHost.TabContentFactory和TabHost.OnTabChangeListener。后面会介绍这些类和接口。
TabHost类的一些函数:
public void addTab (TabHost.TabSpec tabSpec) 添加 tab,参数TabHost.TabSpec通过下面的函数返回得到
4、TabHost.TabSpec
从上面的函数可以知道如何添加tab了,要注意,这里的Tag(标签),不是Tab按钮上的文字。
而要设置tab的label和content,需要设置TabHost.TabSpec类。 引用SDK里面的话——“A tab has a tab indicator, content, and a tag that is used to keep track of it.”,TabHost.TabSpec就是管理这3个东西:
public String getTag ()
public TabHost.TabSpec setContent
public TabHost.TabSpec setIndicator
我理解这里的Indicator 就是Tab上的label,它可以
设置label : setIndicator (CharSequence label)
或者同时设置label和icon :setIndicator (CharSequence label, Drawable icon)
或者直接指定某个view : setIndicator (View view)
对于Content ,就是Tab里面的内容,可以
设置View的id : setContent(int viewId)
或者TabHost.TabContentFactory 的createTabContent(String tag)来处理:setContent(TabHost.TabContentFactory contentFactory)
或者用new Intent 来引入其他Activity的内容:setContent(Intent intent)
TabHost控件(id="@android:id/tabhost")->TabWidget(必须命名为tabs)->FrameLayout(必须命名为tabcontent)。 0 0
- android开发之TabActivity
- Android之TabActivity
- Android TabActivity之感叹
- Android TabActivity之感叹
- Android 之TabActivity
- Android之底部導航欄--RadioGroup、TabHost、TabActivity
- Android UI之Tab(TabActivity+TabHost实现)
- android:TabActivity
- Android TabActivity的嵌套
- Android TabActivity Essentials
- android的TabActivity
- Android下实现TabActivity
- Android TabActivity 按键响应
- Android TabActivity的生命周期
- android的TabActivity
- android的TabActivity
- Android TabActivity的生命周期
- Android - TabActivity的生命周期
- android自定义播放器
- ubuntu 无法进入图形界面
- codeforces 258(Div.2) C. Predict Outcome of the Game
- WAS - 备份恢复WAS的配置
- UVA 11995 - I Can Guess the Data Structure! (基本数据结构)
- Android 之TabActivity
- 检测过程进行
- log
- 阿斯达喀什ui是对素一个十一点是
- 为何相对布局中的控件不能紧挨着父界面?
- 利用Ptrace在Android平台实现应用程序控制
- CSDNFJAHAHDASUHD S
- [每天一个Linux小技巧] gdb 下一次执行多个命令
- 用R语言读取Modis时间序列图像