文档章节

一个简单好用的Android Tab 设计与实现

叶大侠
 叶大侠
发布于 2015/04/05 17:40
字数 463
阅读 92
收藏 0

原文: http://www.darcye.com/article/25148800


 Tab在Android导航中的使用非常频繁,很多应用中都能找到它的身影,笔者在观察的过程中发现,在大部分情况 下用到的无非就下面几种: [文字居中] 、[图片居中]、[图片在上|文字在下(共同居中)],附带红点或者文字提示。为了少重复造轮子,就在这个基础上做一个比较通用的Tab控件。

1:常见的Tab样式:

 2:TabView设计图:

    如上图所示,Tab 的内容(可能是文字,图片,或者两者皆有),始终会居中于外围的容器。提示点有两种,一种是不带文字的,一种是带文字的,带文字的在文字比较长的时候需要拉长成椭圆,点的位置可以通过距离右上角的上距(topMargin)和右距(rightMargin)来决定。点击时会可以发生变化的有Tab的背景,另一张Image, Text的字体颜色。RadioButton能很好维护状态之间的转换。

 3:一个经典的示例:

             

    如图:用ViewPager来维护Fragment的生命周期和切换,用RadioGroup来维护TabView[extends RadioButton]的状态,代码将变得非常简洁。

 4:实现代码:

    GitHub地址: https://github.com/YeDaxia/AndroidTabSwither


© 著作权归作者所有

共有 人打赏支持
叶大侠

叶大侠

粉丝 57
博文 44
码字总数 67312
作品 5
广州
程序员
Android ActionBar源码解析之FragmentTab

源博客连接:Android ActionBar源码解析之FragmentTab 在Android3.0以上以及android.support.v4包中包含了ActionBar这个控件,十分好用的一个模块就是它的ActionBar.Tab.但是,它将布局与Fra...

正经点
2013/06/07
0
0
Android深度定制化TabLayout:圆角,渐变色,背景边框,基于Android原生TabLayout

Android深度定制化TabLayout:圆角,渐变色,背景边框,基于Android原生TabLayout 如今UI设计已经不再满足于下方只有一个下划线,切换后能改变和表示选中颜色的TabLayout了。设计对于TabLayo...

zhangphil
05/28
0
0
android 开发积累-fragment卡死

Android在3.0中引入了fragments的概念,主要目的是用在大屏幕设备上--例如平板电脑上,支持更加动态和灵活的UI设计。平板电脑的屏幕要比手机的大得多,有更多的空间来放更多的UI组件,并且这些组...

veblen_pong
2015/04/29
0
0
Android ——TabHost使用

在Android中,通常可以使用切换卡(选项卡)实现切换显示不同页面内容的功能。这一功能可以通过TabHost控件来实现。   下面我们就通过一个简单的实例演示如何使用TabHost控件完成切换卡功能...

的书法上的
2014/08/05
0
0
Android选项卡实现之TabHost/TabSpec/TabWidget

Tab是什么就不用再用我来描述了。android的ui开发中,承载Tab的容器就是TabHost,每一个Tab对应一个Activity,每个Activity均会有自己的布局。 1.继承TabActivity 2.布局文件中使用tabHost,t...

古沐风
2013/11/27
0
2

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
27
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部