本文实例讲述了Android编程实现自定义Tab选项卡功能。分享给大家供大家参考,具体如下:
import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.*;
import android.widget.TabHost.OnTabChangeListener;
import android.os.Build;
import android.view.View;
import java.lang.reflect.Field;
import android.view.LayoutInflater;
public class testTabActivity extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int width =45;
int height =48;
final TabHost tabs = getTabHost();
final TabWidget tabWidget = tabs.getTabWidget();
Field mBottomLeftStrip;
Field mBottomRightStrip;
LayoutInflater.from(this).inflate(R.layout.tab_views, tabs.getTabContentView(), true);
tabs.addTab(tabs.newTabSpec("first tab")
.setIndicator("信息",getResources().getDrawable(R.drawable.m))
.setContent(new Intent(testTabActivity.this,OneActivty.class))
);
tabs.addTab(tabs.newTabSpec("second tab")
.setIndicator("收藏",getResources().getDrawable(R.drawable.n))
.setContent(R.id.content));
tabs.addTab(tabs.newTabSpec("second tab")
.setIndicator("设置",getResources().getDrawable(R.drawable.s))
.setContent(R.id.content));
for (int i =0; i < tabWidget.getChildCount(); i++) {
/**
* 设置高度、宽度,不过宽度由于设置为fill_parent,在此对它没效果
*/
tabWidget.getChildAt(i).getLayoutParams().height = height;
tabWidget.getChildAt(i).getLayoutParams().width = width;
/**
* 设置tab中标题文字的颜色,不然默认为黑色
*/
final TextView tv = (TextView) tabWidget.getChildAt(i).findViewById(android.R.id.title);
tv.setTextColor(this.getResources().getColorStateList(android.R.color.white));
/**
* 此方法是为了去掉系统默认的色白的底角
*
* 在 TabWidget中mBottomLeftStrip、mBottomRightStrip
* 都是私有变量,但是我们可以通过反射来获取
*
* 由于还不知道Android 2.2的接口是怎么样的,现在先加个判断好一些
*/
if (Float.valueOf(Build.VERSION.RELEASE) <= 2.1) {
try {
mBottomLeftStrip = tabWidget.getClass().getDeclaredField ("mBottomLeftStrip");
mBottomRightStrip = tabWidget.getClass().getDeclaredField ("mBottomRightStrip");
if(!mBottomLeftStrip.isAccessible()) {
mBottomLeftStrip.setAccessible(true);
}
if(!mBottomRightStrip.isAccessible()){
mBottomRightStrip.setAccessible(true);
}
mBottomLeftStrip.set(tabWidget, getResources().getDrawable (R.drawable.no));
mBottomRightStrip.set(tabWidget, getResources().getDrawable (R.drawable.no));
} catch (Exception e) {
e.printStackTrace();
}
} else {
/**
* 不做任何处理
*/
}
View vvv = tabWidget.getChildAt(i);
if(tabs.getCurrentTab()==i){
vvv.setBackgroundDrawable(getResources().getDrawable(R.drawable.tab_button));
}
else {
vvv.setBackgroundDrawable(getResources().getDrawable(R.drawable.bar));
}
}
/**
* 当点击tab选项卡的时候,更改当前的背景
*/
tabs.setOnTabChangedListener(new OnTabChangeListener(){
@Override
public void onTabChanged(String tabId) {
// TODO Auto-generated method stub
for (int i =0; i < tabWidget.getChildCount(); i++) {
View vvv = tabWidget.getChildAt(i);
if(tabs.getCurrentTab()==i){
vvv.setBackgroundDrawable(getResources().getDrawable(R.drawable.tab_button));
}
else {
vvv.setBackgroundDrawable(getResources().getDrawable(R.drawable.bar));
}
}
}});
}
}
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android编程之activity操作技巧总结》、《Android资源操作技巧汇总》、《Android文件操作技巧汇总》、《Android操作SQLite数据库技巧总结》、《Android操作json格式数据技巧总结》、《Android数据库操作技巧总结》、《Android编程开发之SD卡操作方法汇总》、《Android视图View技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
# Android
# 自定义
# Tab选项卡
# Android实现底部导航栏功能(选项卡)
# Android多个TAB选项卡切换效果
# Android仿微信底部实现Tab选项卡切换效果
# Android利用Fragment实现Tab选项卡效果
# Android实现类似网易新闻选项卡动态滑动效果
# Android编程实现将tab选项卡放在屏幕底部的方法
# Android开发之选项卡功能的实现方法示例
# Android实现知乎选项卡动态隐藏效果实例
# 操作技巧
# 选项卡
# 都是
# 进阶
# 相关内容
# 在此
# 还不
# 感兴趣
# 可以通过
# 给大家
# 不做
# 设置为
# 更多关于
# 对它
# 所述
# 程序设计
# 操作方法
# 射来
# 默认为
相关文章:
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
如何快速打造个性化非模板自助建站?
用v-html解决Vue.js渲染中html标签不被解析的问题
网站制作公司,橙子建站是合法的吗?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
济南网站制作的价格,历城一职专官方网站?
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
全景视频制作网站有哪些,全景图怎么做成网页?
如何在阿里云虚拟服务器快速搭建网站?
大同网页,大同瑞慈医院官网?
网站按钮制作软件,如何实现网页中按钮的自动点击?
网站图片在线制作软件,怎么在图片上做链接?
建站之星安装后界面空白如何解决?
宝塔面板如何快速创建新站点?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
潮流网站制作头像软件下载,适合母子的网名有哪些?
北京营销型网站制作公司,可以用python做一个营销推广网站吗?
学校建站服务器如何选型才能满足性能需求?
装修招标网站设计制作流程,装修招标流程?
电脑免费海报制作网站推荐,招聘海报哪个网站多?
建站之星后台密码遗忘?如何快速找回?
如何制作网站标识牌,动态网站如何制作(教程)?
广东专业制作网站有哪些,广东省能源集团有限公司官网?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
制作农业网站的软件,比较好的农业网站推荐一下?
建站之星微信建站一键生成小程序+多端营销系统
如何在阿里云ECS服务器部署织梦CMS网站?
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
代刷网站制作软件,别人代刷火车票靠谱吗?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
建站主机服务器选购指南:轻量应用与VPS配置解析
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
魔方云NAT建站如何实现端口转发?
中山网站制作网页,中山新生登记系统登记流程?
如何设置并定期更换建站之星安全管理员密码?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
如何在阿里云部署织梦网站?
制作网站公司那家好,网络公司是做什么的?
如何通过FTP空间快速搭建安全高效网站?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
如何选择适合PHP云建站的开源框架?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
网站专业制作公司有哪些,做一个公司网站要多少钱?
如何通过多用户协作模板快速搭建高效企业网站?
香港网站服务器数量如何影响SEO优化效果?
*请认真填写需求信息,我们会在24小时内与您取得联系。