全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android编程实现自定义Tab选项卡功能示例

本文实例讲述了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小时内与您取得联系。