动态改变TabActivity标签的tab图片的两种方法浅析
来源:互联网 发布:日本战国身高知乎 编辑:程序博客网 时间:2024/04/26 22:45
前提:
关于TabActivity的介绍,已经很多了,对于动态改变TabActivity标签的图片的介绍也有很多,但是大部分都是去监听tabchange事件,代码量大,一不小心就会把图片写错位置,需要很细心才行。我在做Contacts通讯录得时候,不小心发现了天机,只需要在XML文件里配置下即可,工作量也少了很多。下面就把这两种方法再详细的介绍给大家。这两种方法各有各的好处,还要根据情况大家自己选择。
第一种:OnTabChangeListener监听tab改变
网上介绍的很多,原理就是获得TabActivity的TabHost的TabWidget,然后改变TabWidget的布局中的android.R.id.icon的ImageView的图片资源!下面把示例代码贴出来,大家看下就明白了。
一个TabWidget可以add多个tab,mTabHost.getTabWidget().getChildAt(int index).index是从0开始,从左到右依次+1。
我定义了两个hashmap去存储各个tab对应的选中和未选中时的现实的图片的id。变量last对应上一个显示的tab的tabid(Tabhost.newTabSpec(String tabid),在onTabChanged(String tabid)只会将tabid传过来),我new的时候将tabid对应成index的对应的字符串,在处理的时候方便。具体看onTabChanged方法。
这种方法虽然复杂,但是可以满足更复杂的需求,比如去更改tab的显示布局,都是可以的,如果只是区分当前的tab与其他tab,还是看第二种方法更简单易懂。
第二种:配置XML
只需要在drawable文件夹下面定义一个name.xml,具体内容如下。定义selector 标签,大家自己看标签属性名字就知道各个属性代表的意思了吧,什么都不填默认是unselected状态。java代码只需要setIndicator(getText(R.string.text),getResources().getDrawable(R.drawable.name))。
这种方法简单,但是不能去改变tab的布局,满足一般的区分当前显示的tab与其他tab还是可以的。
java代码:
- 动态改变TabActivity标签的tab图片的两种方法浅析
- android两种Tab分页的方式:TabActivity和ActivityGroup
- Android之Tab分页标签的实现方法一-----TabActivity和TabHost的结合(一)
- Android之Tab分页标签的实现方法一-----TabActivity和TabHost的结合(二)
- Android之Tab分页标签的实现方法一-----TabActivity和TabHost的结合(三)
- Android之Tab分页标签的实现方法一-----TabActivity和TabHost的结合(一)
- Android之Tab分页标签的实现方法一-----TabActivity和TabHost的结合(二)
- Android之Tab分页标签的实现方法一-----TabActivity和TabHost的结合(三)
- Android之Tab分页标签的实现方法一----TabActivity和TabHost的结合(一)
- Android之Tab分页标签的实现方法一-----TabActivity和TabHost的结合(二)
- Android之Tab分页标签的实现方法一-----TabActivity和TabHost的结合(三)
- Android之Tab分页标签的实现方法一-----TabActivity和TabHost的结合(三)
- Android之Tab分页标签的实现方法一-----TabActivity和TabHost的结合(一)
- Android之Tab分页标签的实现方法一-----TabActivity和TabHost的结合(一)
- Android之Tab分页标签的实现方法一-----TabActivity和TabHost的结合(二)
- Android之Tab分页标签的实现方法一-----TabActivity和TabHost的结合(三)
- EasyUI两种动态添加tab Iframe页面的方法
- 根据图片高度动态改变ViewPager高度方法的两种方式对比: PageTransformer& OnPageChangeListener
- SMP865X广告机之破解dcchd
- QT【小结】2 - UI的使用
- 模块、类、函数关系
- G-7 intervening to halt yen’s post-quake rise
- 常用的技术网站
- 动态改变TabActivity标签的tab图片的两种方法浅析
- PMP知识点总结—计算题汇总
- 浅谈.NET下的多线程和并行计算系列文章索引[转]
- 初学者的C++练习题——(一)计分程序
- 判断两条线段是否相交(三种算法)
- 网络中几个重要的结构体
- Linux—— Posix IPC
- 修改编码方式
- Android深入浅出之Binder机制