1.制作4个9patch的tab样式,可参考android默认的资源
tab_unselected.9.png tab_selected.9.pngtab_press.9.pngtab_focus.9.png
这4个资源分别代表Tab的4种状态。
2.定义Tab的selector样式(就叫它tab_indicator.xml好了),将其放入drawable文件夹下,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Non focused states -->
<item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected" />
<item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected" />
<!-- Focused states -->
<item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_focus" />
<item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_focus" />
<!-- Pressed -->
<item android:state_pressed="true" android:drawable="@drawable/tab_press" />
</selector>
3.编写indicator的布局文件(不妨也叫tab_indicator.xml),将其放入layout文件夹下,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dip"
android:layout_height="64dip"
android:layout_weight="1"
android:layout_marginLeft="-3dip"
android:layout_marginRight="-3dip"
android:orientation="vertical"
android:background="@drawable/tab_indicator">
<ImageView android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
/>
<TextView android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
style="?android:attr/tabWidgetStyle" mce_style="?android:attr/tabWidgetStyle"
/>
4.接下来就是在TabActivity中使用我们自己编写的Tab样式了:
// 首先获取TabWidget
mTabHost = getTabHost();
LinearLayout ll = (LinearLayout)mTabHost.getChildAt(0);
TabWidget tw = (TabWidget)ll.getChildAt(0);
然后用类似如下代码创建TabSpec,就大功告成了。
RelativeLayout tabIndicator1 = (RelativeLayout) LayoutInflater.from(this).inflate(R.layout.tab_indicator, tw, false);
TextView tvTab1 = (TextView)tabIndicator1.getChildAt(1);
tvTab1.setText("tab1");
mTabHot = mTabHost.newTabSpec("TAB_1")
.setIndicator(tabIndicator1)
.setContent(contentIntent);
分享到:
相关推荐
tablayout+viewpager自定义tab和自定义指示器。完美解决滑动卡顿。
android自定义控件,实现选项卡功能。可通过自定义属性设置选项卡样式,且Tab的数目也可通过属性灵活设置,可设置为文本选项卡或图片选项卡,利用回调监听响应各Tab的点击事件,且设置方法和android原生控件设置点击...
左侧竖向选项卡TAB导航烂,支持viewpager,不依赖viewpager,支持自定义tab样式,自带切换动画
NULL 博文链接:https://jykenan.iteye.com/blog/855843
RadioGroup自定义选项卡样式
实现了Android的底部tab切换界面,并实现了不同tab有不同的标题显示样式。这在项目中很常用。
今天开发Android短彩信传统模式,遇到了修改tab的默认样式问题,搜集了一些资料,可用参考。
1. 支持自定义tab样式 2. 支持自定义滑动块样式和位置 3. 支持自定义切换tab的过渡效果 4. 支持子界面的预加载和界面缓存 5. 支持设置界面是否可滑动 6. android:minSdkVersion="14" 7.导入方式 gradle导入 compile ...
主页导航Tab按钮自定义View 你不用再在xml中设置各种复杂的样式了,现在,你用几行代码就可以搞定。 ###使用方法: xml定义 <cc.core.bottomnavtabview.BottomNavTabView android:id="@+id/tab" android:layout...
支持自定义tab样式2.支持自定义滑动块样式和位置3.支持自定义切换tab的过渡效果4.支持子界面的预加载和界面缓存5.支持设置界面是否可滑动6. android:minSdkVersion =“ 14”7.引入方式渐变导入implementation '...
Android顶部、底部标签,自定义Dialog、Snackbar、Toast,悬浮按钮,展示图伸缩效果,发送消息界面效果,登录界面效果等。
先看效果: 京东商城底部菜单栏 新浪微博底部菜单栏 ...本次学习效果图: ...第一,主布局文件(启动页main.xml,位于res/layout目录下)代码 ...xml version=....TabHost xmlns:android=...android:id=@+id/tabhost
# RapidDevelop-Android快速开发框架 - 框架持续更新中 - 这个框架是从平时项目里用的比较多的框架里整合而来 - 对本项目感兴趣的可以一起研究喜欢的朋友欢迎star - 同时也欢迎大家的宝贵意见issues - 如果大家...
一个比较美观的圆角Tab选项卡切换效果.html一个比较美观的圆角Tab选项卡切换效果.html一个比较美观的圆角Tab选项卡切换效果.html
初始数据bean,筛选结果bean,tab样式,筛选样式 多排 单选,多选 初始数据bean,筛选结果beantab样式,筛选样式 双列 单项单选,单项多选 初始数据bean,筛选结果bean,tab样式,筛选样式 复杂 单项单选,单项多选 初始...
提供丰富常用的 UI 控件,例如 BottomSheet、Tab、圆角 ImageView、下拉刷新等,使用方便灵活,并且支持自定义控件的样式。 高效的工具方法 提供高效的工具方法,包括设备信息、屏幕信息、键盘管理、状态栏管理等,...
以前做项目大多用的radiobutton,今天用tablayout来做一个tab切换页面的的效果. 实现的效果就是类似QQ.微信的页面间(也就是Fragment间)的切换.如图: 布局只要一个tablayout <android.support.design.widget....
可自定义下标宽度的TabLayout 根据 com.android.support:design TabLayout 的源码进行修改而来 看到网上博客都是反射修改,而且减少了Tab的可点击范围,体验十分不友好 所以特地修改了一份源码供使用,本项目依赖...
支持自定义tab样式2. 支持自定义滑动块样式和位置3. 支持自定义切换tab的过渡效果4. 支持子界面的预加载和界面缓存5. 支持设置界面是否可滑动6. android:minSdkVersion="14"7.导入方式<1>gradle导入compile '...
丰富的UI控件提供丰富的常用的UI控件,例如BottomSheet,Tab,圆角ImageView,拖放刷新等,使用方便灵活,并支持自定义控件的样式。高效的工具方法提供高效的工具方法,包括设备信息,屏幕信息,键盘管理,状态栏...