TabHost,在onCreate方法中获得控件的位置信息

本文介绍了如何在TabHost中获取控件的位置信息,讲解了TabHost的基本布局结构,强调了固定ID的重要性。在Android 4.1版本中遇到的图标不显示问题以及解决方法,同时提供了通过标签切换内容的方法。还提醒了在onCreate方法中设置布局监听以避免死循环的注意事项。
摘要由CSDN通过智能技术生成

TabHost


短信界面就是TabHost的案例。

TabHost包括页签和内容两部分。布局文件:


其中,TabHost,页签部分和内容部分都必须有id属性,并且id是固定的。

主界面要继承TabActivity。

findViewById的时候,由于id是系统的id值,所以要用:

TabHost mTabHost = (TabHost) findViewById(android.R.id.tabhost);


获得新页签TabSpec

TabSpec tabSpec = mTabHost.newTabSpec(tag);

如果有多个页签的话,页签的tag不能一样。

给页签添加标题和图标

tabSpec.setIndicator(label, icon);

给页签添加指向内容,指向内容为Activity:

tabSpec.setContent(intent);

将页签添加到TabHost

mTabHost.addTab(tabSpec);


运行时,4.1版本没有显示页签的图标,可以通过修改主题解决该问题:



若点击按钮切换内容的话:

mTabHost.setCurrentTabByTag(tag);


在onCreate方法中获得控件的位置信息

需要用布局获得一个视图树观察者对象,然后再添加一个当全部布局(onLayout()方法)完成时的监听事件,如:


一旦布局中有控件的位置信息发生改变,系统就会重新调用onMeasure()---->onLayout()---->onDraw()方法,所以要及时移除监听事件,否则会进入死循环。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值