标签,在使用手机中经常会用到标签,首先我们用继承TabActivity来实现一个简单标签。
首先认识TabHost相当于放标签的容器,Tabspec就是意义上的标签了,这里我们定义了三个标签分别用不同组件加以区别,首先定义布局管理器tab.xml
<LinearLayout xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:id="@+id/tab1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <AnalogClock android:id="@+id/analogClock1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <DigitalClock android:id="@+id/digitalClock1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="DigitalClock" /> </LinearLayout> <LinearLayout android:id="@+id/tab2" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <RatingBar android:id="@+id/ratingBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:id="@+id/tab3" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <DialerFilter android:id="@+id/dialerFilter1" android:layout_width="match_parent" android:layout_height="wrap_content" > <EditText android:id="@android:id/hint" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Hint" /> <EditText android:id="@android:id/primary" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@android:id/hint" android:text="Primary" /> </DialerFilter> <RadioGroup android:id="@+id/radioGroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" > <RadioButton android:id="@+id/radio0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:text="男" /> <RadioButton android:id="@+id/radio1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="女" /> <RadioButton android:id="@+id/radio2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="其他" /> </RadioGroup> </LinearLayout> </LinearLayout>
内嵌三个布局管理器用来显示
接下来看activity代码:
public class MainActivity extends TabActivity { private TabHost mytabhost=null; private int tab[]={R.id.tab1,R.id.tab2,R.id.tab3};//将要显示的三个标签布局管理器id protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //自定义组件 this.mytabhost=super.getTabHost();//取得Tabhost LayoutInflater.from(this).inflate(R.layout.tab,//定义转换的布局管理器 this.mytabhost.getTabContentView(),//指定标签增加的容器 true);//实例化布局管理中的组件 for(int i=0;i<tab.length;i++){ TabSpec mytab=mytabhost.newTabSpec("tab"+i);//定义tabspec mytab.setIndicator("标签"+i);//设置标签文字 mytab.setContent(tab[i]);//设置标签组件 this.mytabhost.addTab(mytab);//添加标签 } } }
运行效果如下:
- 第二种方法,继承自Activity类
定义tab.xml
<?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:id="@+id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" /> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tab_edit" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <EditText android:id="@+id/edit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="请输入检索关键字..." android:textSize="18px" /> <Button android:id="@+id/but" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="搜索" /> </LinearLayout> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tab_clock" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <AnalogClock android:id="@+id/myAnalogClock" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tab_sex" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <RadioGroup android:id="@+id/sex" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <RadioButton android:id="@+id/male" android:checked="true" android:text="性别:男" /> <RadioButton android:id="@+id/female" android:text="性别:女" /> </RadioGroup> </LinearLayout> </FrameLayout> </LinearLayout> </TabHost>
activity:
public class MyTabHostDemo extends Activity { // 继承了TabActivity private TabHost myTabHost; private int[] layRes = new int[] { R.id.tab_edit, R.id.tab_clock, R.id.tab_sex }; // 这些是内嵌布局文件的ID @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.tab) ; this.myTabHost = (TabHost) super.findViewById(R.id.tabhost) ; this.myTabHost.setup() ; // 建立TabHost对象 for (int x = 0; x < this.layRes.length; x++) { TabSpec myTab = this.myTabHost.newTabSpec("tab" + x) ; myTab.setIndicator("标签 - " + x) ; myTab.setContent(this.layRes[x]) ; this.myTabHost.addTab(myTab) ; } this.myTabHost.setCurrentTab(0) ; // 默认显示的标签索引 } }
效果与上述一致
相关推荐
android底部通用切换标签,Fragment嵌套页面,方便自定义
利用Button + Fragment实现android的标签切换界面功能。
Android 使用Fragment,ActionBar 实现tab标签切换页面的一个简单样例
ViewPager实现多页面切换及动画效果(仿Android的Launcher效果),类似QQ多标签页面切换以及Android的Launcher效果
1.QQ:513187410 2.保证无毒 3.简单,方便,实用 4.实例可以自行改用 5.如有非法,本人无法律责任,由改动代码人负责! 6.需要更多本人作品,查找标签“朱建强” 7.请下载,杀毒后再使用!
DragSortRecyclerView 仿新闻类app频道切换页面,支持拖拽排序,交换频道等
使用了自定义button,自定义tabhost使用了不同默认的上标签切换页面
实现测试页上的五个标签,单击实现不同页面的跳转。
点击手机底部的标签时 切换相对应的内容界面,点击下方每个按钮切换到相应的fragment下
本篇博客要分享的一个UI效果——实现底部切换标签,想必大家在一些应用上面遇到过这种效果了,最典型的就是微信了,可以左右滑动切换页面,也可以点击标签页滑动页面,它们是如何实现的呢,本篇博客为了简单只介绍...
现在的APP首页大部分屏幕的下方显示一行Tab标签选项,点击不同的标签就可以切换到不同的界面。如下图: 我们之前都是用TabHost来实现,但是殊不知,TabHost并非是那么的简单,它的可扩展性非常的差,不能随意地定制...
“ ChromeLikeTabSwitcher”是一个Android库,它提供的标签切换器类似于在Google Chrome浏览器的Android版本中使用的标签切换器。 它提供了针对智能手机和平板电脑设备优化的布局。 以下GIF说明了该库的外观: 该...
APP市场中大多数新闻App都有导航菜单,导航菜单是一组标签的集合,在新闻客户端中,每个标签标示一个新闻类别,对应下面ViewPager控件的一个分页面,今日头条, 网易新闻等。 随着版本迭代的更新,带来了许多控件,...
相信大家一定都使用过手机QQ和微信之类的软件,当我们使用时不难发现其界面的切换不仅可以通过点击页标签来实现,还可以通过左右滑动来实现的,下面小编给大家介绍下如何实现这个功能
在文件BoardTabHost.java中定义页面切换的效果;切换页面时,当前页面滑出,目标页面滑入。这是2个不同的动画设定动画时要区分对待 import android.content.Context; import android.util.AttributeSet; import ...
TabWidget : 该组件就是TabHost标签页中上部 或者 下部的按钮, 可以点击按钮切换选项卡; TabSpec : 代表了选项卡界面, 添加一个TabSpec即可添加到TabHost中; — 创建选项卡 : newTabSpec(String tag), 创建一个选项...
标签栏是一个非常常见的控件,似乎也是一个比较简单的控件,但如果在标签... 切换标签时,开始下划线滑动的动画,并判断是否要同时滑动标签栏。 我做了一个样例程序,其中的较难点在于计算下划线的位置,和下划线的动
本文实例讲述了微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能。分享给大家供大家参考,具体如下: 微信小程序开发中选项卡.在android中选项卡一般用fragment,到了小程序这里瞬间懵逼了. 总算做出来...
7.3.17 切换图片(ImageSwitcher&Gallery) 7.3.18 网格视图(GridView)介绍与应用 7.3.19 标签(Tab)介绍与应用 7.4 友好的菜单——menu介绍与实例 7.4.1 实例操作演示 7.4.2 实例编程实现 7.5 Android应用的灵魂——...
支持input标签文件上传 支持Js通信文件上传 简化回退及返回键的处理 简化url加载 webview 安全漏洞的问题修复,更加安全 支持权限管理,常用的定位、相册的权限 支持电话、短信、邮件的跳转 支持自定义进度条指示器 ...