/**

* Tab选项卡类似与电话本的界面,通过多个标签切换不同的内容,要实现这个效果,首先要知道TabHost,

* 它是一个用来存放多个Tab标签的容器,每一个Tab都可以对应自己的布局,比如,电话本中的Tab布局就

* 是一个线性布局

* 要使用TabHost,首先要通过getTabHost方法获取TabHost的对象,然后通过addTab方法来向

* TabHost中添加Tab,当然每个Tab在切换时都会产生一个事件,要捕捉这个事件,需要设置TabActivity

* 的事件监听setOnTabChangedListener

*/

效果图



发现很多微薄如腾讯,新浪的选项卡 都是显示在页面底部的,网上有资料:通过反射获取tabwidget中的私有变量,改变其值。

效果图

本程序main.xml源码

android:id="@android:id/tabhost"android:layout_width="fill_parent"

android:layout_height="fill_parent">

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

android:id="@android:id/tabcontent"

android:layout_weight="1"

android:layout_width="fill_parent"

android:layout_height="fill_parent"/>

android:id="@android:id/tabs"

android:layout_alignParentBottom="true"

android:layout_width="fill_parent"

android:layout_height="wrap_content"/>

java源码

import android.app.TabActivity;

import android.os.Bundle;

import android.widget.TabHost;

import android.widget.Toast;

import android.widget.TabHost.OnTabChangeListener;

public class TabWidgetActivity extends TabActivity

{

TabHost tabhost;

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//取得TabHost对象

tabhost=getTabHost();

//为TabHost添加标签

//新建一个newTabSpec(newTabSpec)

//设置其标签和图标(setIndicator)

//设置内容(setContent)

tabhost.addTab(tabhost.newTabSpec("tab1")

.setIndicator("TAB 1",getResources().getDrawable(R.drawable.icon))

.setContent(R.id.text1));

tabhost.addTab(tabhost.newTabSpec("tab2")

.setIndicator("TAB 2",getResources().getDrawable(R.drawable.icon))

.setContent(R.id.text2));

tabhost.addTab(tabhost.newTabSpec("tab3")

.setIndicator("TAB 3",getResources().getDrawable(R.drawable.icon))

.setContent(R.id.text3));

//设置TabHost的背景颜色

//tabhost.setBackgroundColor(Color.argb(150,22,70,150));

//设置TabHost的背景图片资源

tabhost.setBackgroundResource(R.drawable.bg0);

//设置当前显示哪个标签

tabhost.setCurrentTab(0);

//标签切换事件处理,setOnTabChangedListener

tabhost.setOnTabChangedListener(new OnTabChangeListener()

{

public void onTabChanged(String tabId)

{

switch(tabhost.getCurrentTab())

{

case 0:

tabhost.setBackgroundResource(R.drawable.bg0);

Toast.makeText(getApplicationContext(), "当前标签为第一个页面", Toast.LENGTH_SHORT).show();

break;

case 1:

tabhost.setBackgroundResource(R.drawable.bg1);

Toast.makeText(getApplicationContext(), "当前标签为第二个页面", Toast.LENGTH_SHORT).show();

break;

case 2:

tabhost.setBackgroundResource(R.drawable.bg2);

Toast.makeText(getApplicationContext(), "当前标签为第三个页面", Toast.LENGTH_SHORT).show();

break;

}

}

});

}

}

Android控件 TabHost,Android控件开发之TabHost相关推荐

  1. android 监听安装来源_Flutter插件开发之APK自动安装

    点击上方的终端研发部,右上角选择"设为星标" 每日早9点半,技术文章准时送上 公众号后台回复"学习",获取作者独家秘制精品资料 往期文章 记五月的一个Andro ...

  2. android qt 串口通信,Qt串口通信开发之QSerialPort模块详细使用方法与实例

    Qt串口通信开发之QSerialPort模块详细使用方法与实例 发布时间:2020-10-23 12:19:05 来源:脚本之家 阅读:111 作者:沧海一笑-dj Qt串口通信基础及名词说明 串口通 ...

  3. android jni 调用java对象_Android NDK开发之Jni调用Java对象

    本地代码中使用Java对象 通过使用合适的JNI函数,你可以创建Java对象,get.set 静态(static)和 实例(instance)的域,调用静态(static)和实例(instance)函 ...

  4. Android 控件开发之ToggleButton

    ToggleButton有两种状态:选中和未选择状态,并且需要为不同的状态设置不同的显示文本 ToggleButton效果: 本程序main.xml源码   <?xml version=&quo ...

  5. Android开发之ConstraintLayout(约束布局)一个控件位于一个控件右上角类似RelativeLayout实现效果

    老套路看下效果图:(绝对的原创!!!!) 实际上很简单,四个点对应上就行了,看代码: <?xml version="1.0" encoding="utf-8&quo ...

  6. Android自定义控件ImageViwe(一)——依据控件的大小来设置缩放图片显示

    功能: 自定义 ImageView 设置显示图片,如果图片的宽与高小于控件的宽与高,就将图片设置显示到控件的中央, 如果图片的宽与高有一项大于控件的宽与高,那么就将图片进行缩放显示,两者者是显示在控件 ...

  7. Android手工打造脑图控件

    背景 所有的开发背景都是项目需要.先上屌炸天的设计图. 效果 导出效果不清晰,尽量看吧. 功能 脑图展示 样式订制(文字颜色.图标.样式.边框..) 折叠方式支持两种:a.同侧折叠不影响其他.b.同侧 ...

  8. 认识Android(常用布局,控件,四大组件,动画,自定义控件及异常消息处理机制)

    目录 一.布局 1.LinearLayout(线性布局): 2.相对布局(RelativeLayout) 3.GridLayout(网格布局) 4.FrameLayout(帧布局): 二.控件 1.T ...

  9. android程序设计排序方法,Android编程之可以实现拖动排序的listview控件

    DragSortListView是一个可以实现拖动排序的listview控件,是我看到的交互较为复杂的开源代码中不管是代码质量还是流畅性都最好的. DragSortListView 简称DSLV,继承 ...

  10. Study on Android【四】--显示控件使用

    Android的界面显示同样也是基于控件的.通常是用View(包括ViewGroup)控件配上XML的样式来做的.具体细节不想说了,可以参考 Samples里的ApiDemos/View,和View的 ...

最新文章

  1. DL645规约学习笔记-一帧数据解释
  2. ##自定义一个自动注入Log 的 插件
  3. 理论 | 分库分表需要考虑的问题及方案
  4. linux 多核线程 调度,通过轻型线程提高多核设备中的Linux实时性能
  5. web前端基础知识:html布局如何应用?
  6. Ubuntu 10.04 is coming
  7. SSH连接原理及ssh-key
  8. 蓝桥杯大赛软件赛省赛,C/C++大学B组,改革后2019-2021真题知识点分类
  9. 关于char, wchar_t, TCHAR, _T(),L,宏 _T、TEXT,_TEXT、L
  10. LATEX采坑+Win10字体采坑
  11. Spring Tool Suite环境搭建
  12. 数据结构-买卖青蛙最大利润
  13. 人民日报聚焦绿之韵,树立民族品牌文化之魂
  14. 论文引用参考文献和自动更新的方法
  15. int类型和Integer类型数据的比较
  16. 网络安全之KALI使用
  17. Django由一查多
  18. 数据结构课程设计-(五)行车路线(图的应用)
  19. SSL证书常见的问题汇总
  20. python模型预测控制_【模型工具】耦合python和 SWMM的城市排水系统模型预测算法...

热门文章

  1. python爬取别人qq空间相册_Python网络爬虫5 - 爬取QQ空间相册
  2. 【Python脚本进阶】2.4、conficker蠕虫(中):Python脚本与Metasploit交互
  3. 全面剖析泛微协同管理平台(e-cology)十大亮点
  4. 发家致富:爬取双色球信息并统计
  5. 南京师范大学2021年硕士研究生入学考试高等代数试卷及参考答案
  6. 特征选择-相关系数法F检验
  7. Fedora Linux 14百度云下载,Fedora Linux 14下载
  8. java使用Jco连接SAP
  9. speex回声消除源码解读
  10. Windows 无法访问指定设备、路径或文件