方法1.继承系统自带的TabActivity,在oncreate()函数中需要,获取系统的tabhost以
及tabwidget(getTabHost();,getTabWidget()),其中有两个思路:
A:如果需要在布局文件中直接定义选项卡的一些属性,或者加入其它的控件,则布局文
件中主要由三部分构成。需要注意的是:三者的id
需分别定义为:@android:id/tabhost、@android:id/tabcontent、@android:id/tabs,
否则会报错。 最后设置setContentView(R.layout.tab);

B:如果想在oncreate()函数中对选项卡的ui界面进行设置的话,则只需要在布局文件
中定义即可,此时FrameLayout的id可以不定义。同时在oncreate函数中也
不需要设置setContentView,而是利用映射的方法引入相关控件:
LayoutInflater li = LayoutInflater.from(this);
li.inflate(R.layout.main, tabHost.getTabContentView(), true);


方法2:不继承TabActivity,自定义所有控件,即在布局文件中包含
三部分。当然三者的id也是有所限制的:同方法1中
的A,除了tabhost需要自己定义。
此时在oncreate()函数中:设置 setContentView(R.layout.tab),然后 tabHost =
(TabHost) this.findViewById(R.id.TabHost01)找到控件。需要注意的是还有一个步骤
: tabHost.setup(),用来建立自定义的tabhost。


方法2使用过程中出现的问题:

A。tabhost可以用自定义的id,然后findviewbyid来找到他。那如果要设置tabwidget的
某些属性怎么办呢?这时候,布局文件中tabwidget的id必须设置为@android:id/tabs,
所以tabwidget控件如果要用findViewbyid来找到的话,只能用 findViewById
(android.R.id.tabs),属于系统的控件。


B。虽然这里不继承TabActivity,所以第一反应就继承普通的Activity,没错,当你的
tabHost.addTab的时候,添加的只是一个屏幕的布局的时候,这里确实是正确的。但是,
当你addTab的是一个ActivityGroup的时候,情况就不一样了(我就是这样)。此时会报
一个错误Did you forget to call 'public void setup(LocalActivityManager
activityGroup?

解决方法是:继承ActivityGroup,并且将tabHost.setup()这个函数改成: mTabhost.setup(this.getLocalActivityManager());

 

Tabhost选项卡的背景设置问题:
1.去下划线
mTabhost.setPadding(mTabhost.getPaddingLeft(), mTabhost.getPaddingTop(),
mTabhost.getPaddingRight(), mTabhost.getPaddingBottom() - 5);

2.设置透明

//遍历tabWidget        for (int i = 0; i < tabWidget.getChildCount(); i++) {                        View tagview = tabWidget.getChildAt(i);            tagview.setBackgroundDrawable(null);            TextView tv = (TextView) tabWidget.getChildAt(i).findViewById(android.R.id.title);              tv.setTextColor(getResources().getColor(R.color.black));       }

 

转载于:https://www.cnblogs.com/jimmyzhao/archive/2012/12/25/2832864.html

更多相关文章

  1. C语言的函数递归(下)
  2. android 键盘顶起布局底部
  3. android XML文件解析之 SAX解析方法
  4. Andorid入门学习笔记整理(一)
  5. Android硬件抽象层(HAL)深入剖析(三)
  6. listview所带来的滑动冲突
  7. android自带的下拉刷新控件SwipeRefreshLayout
  8. 流程图控件GoJS内置GraphObject类各指数介绍(二)
  9. pgsql查看主备节点的方法

随机推荐

  1. android Intent用法归纳
  2. 我使用过的 控件的一些特性(layout_weight
  3. 2011.09.21——— android 动态壁纸开发
  4. RubyMotion 3发布,支持Android和WatchKit
  5. Android访问本地服务器(localhost)的解决方
  6. Android开发 Handler+ExecutorService(线
  7. Android中修改系统时间的几种方式
  8. Android之DiskLruCache(缓存工具)
  9. Android客户端向服务器端传值——登录实
  10. android开发随记 - Google Map