- 浏览: 798858 次
- 性别:
- 来自: 哈尔滨
文章分类
最新评论
-
doloveme:
$sudo cp MONACO_Linux.ttf /usr/ ...
terminator 的配置 -
腾讯rep:
lowser
RSA加密算法c++简单实现 -
csuhanyong:
好YD啊,好YD
一图流:机械键盘各轴区别 -
doloveme:
1。其中:extman ,extmail下载http://ww ...
Ubuntu下安装postfix+extmail邮件服务器 -
doloveme:
repo sync出现“fatal: '../platform ...
Android 编译环境配置搭建(Ubuntu 12.04)及环境导致编译错误QA
自定义android的tab样式 《转载》
- 博客分类:
- Android
android项目中碰到需要替换tabHost默认样式的情况,需要达到下图的效果:
为了做成这样的效果,花了些时间,这里做个笔记,给有需要的朋友。
步骤一:新建一
个xml布局文件,命名main.xml
<?
xml
version
="1.0"
encoding
="utf-8"
?>
< TabHost xmlns:android ="http://schemas.android.com/apk/res/android"
android:id ="@android:id/tabhost" android:layout_width ="fill_parent"
android:layout_height ="fill_parent" android:background ="@color/white" >
< LinearLayout 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:gravity ="center_horizontal|center_vertical" />
< FrameLayout android:id ="@android:id/tabcontent"
android:layout_width ="fill_parent" android:layout_height ="fill_parent" >
</ FrameLayout >
</ LinearLayout >
</ TabHost >
< TabHost xmlns:android ="http://schemas.android.com/apk/res/android"
android:id ="@android:id/tabhost" android:layout_width ="fill_parent"
android:layout_height ="fill_parent" android:background ="@color/white" >
< LinearLayout 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:gravity ="center_horizontal|center_vertical" />
< FrameLayout android:id ="@android:id/tabcontent"
android:layout_width ="fill_parent" android:layout_height ="fill_parent" >
</ FrameLayout >
</ LinearLayout >
</ TabHost >
步
骤二:在Activity中添加我们的tab
代码如下
@Override
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.main);
mTabHost = getTabHost();
Intent intent1 = new Intent(this,OfficialActivity.class);
createTab("公共聊天室",intent1);
Intent intent2 = new Intent(this, NearByActivity.class);
createTab("周边",intent2);
Intent intent3= new Intent(this, HistoryActivity.class);
createTab("历史",intent3);
mTabHost.setCurrentTab(1);
}
private void createTab(String text ,Intent intent){ mTabHost.addTab(mTabHost.newTabSpec(text).setIndicator(createTabView(text)).setContent(intent));
}
private View createTabView(String text) {
View view = LayoutInflater.from(this).inflate(R.layout.tab_indicator, null);
TextView tv = (TextView) view.findViewById(R.id.tv_tab);
tv.setText(text);
return view;
}
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.main);
mTabHost = getTabHost();
Intent intent1 = new Intent(this,OfficialActivity.class);
createTab("公共聊天室",intent1);
Intent intent2 = new Intent(this, NearByActivity.class);
createTab("周边",intent2);
Intent intent3= new Intent(this, HistoryActivity.class);
createTab("历史",intent3);
mTabHost.setCurrentTab(1);
}
private void createTab(String text ,Intent intent){ mTabHost.addTab(mTabHost.newTabSpec(text).setIndicator(createTabView(text)).setContent(intent));
}
private View createTabView(String text) {
View view = LayoutInflater.from(this).inflate(R.layout.tab_indicator, null);
TextView tv = (TextView) view.findViewById(R.id.tv_tab);
tv.setText(text);
return view;
}
步骤三:在createTabView方法中,我
们载入了布局文件tab_indicator.xml,改布局很简单,就是放置一个带背景的布局,在布局中放一个textView用于显示tab标题,以
下为该布局文件内容
<?
xml
version
="1.0"
encoding
="utf-8"
?>
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:layout_height ="fill_parent" android:layout_width ="fill_parent"
android:orientation ="vertical" android:gravity ="center"
android:theme ="@android:style/Theme.NoTitleBar" android:background ="@drawable/chat_tab_selector" >
< TextView android:id ="@+id/tv_tab" android:layout_width ="wrap_content" android:layout_height ="wrap_content"
android:text ="tab1" android:textColor ="@color/white" />
</ LinearLayout >
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:layout_height ="fill_parent" android:layout_width ="fill_parent"
android:orientation ="vertical" android:gravity ="center"
android:theme ="@android:style/Theme.NoTitleBar" android:background ="@drawable/chat_tab_selector" >
< TextView android:id ="@+id/tv_tab" android:layout_width ="wrap_content" android:layout_height ="wrap_content"
android:text ="tab1" android:textColor ="@color/white" />
</ LinearLayout >
步骤四:在上面的布局文件中我们把该布局的背景定义为
chat_tab_selector,这里同样需要在drawable文件夹下新建chat_tab_selector.xml,内容很简单,就是做一个
按下时的背景切换,内容如下:
<?
xml
version
="1.0"
encoding
="utf-8"
?>
< selector xmlns:android = "http://schemas.android.com/apk/res/android">
< item
android:state_focused = "true"
android:drawable = "@drawable/topbar_bg_down"
/>
< item
android:state_selected = "true"
android:drawable = "@drawable/topbar_bg_down"
/>
< item
android:state_pressed = "true"
android:drawable = "@drawable/topbar_bg_down"
/>
< item android:drawable = "@drawable/topbar_background" />
</ selector >
< selector xmlns:android = "http://schemas.android.com/apk/res/android">
< item
android:state_focused = "true"
android:drawable = "@drawable/topbar_bg_down"
/>
< item
android:state_selected = "true"
android:drawable = "@drawable/topbar_bg_down"
/>
< item
android:state_pressed = "true"
android:drawable = "@drawable/topbar_bg_down"
/>
< item android:drawable = "@drawable/topbar_background" />
</ selector >
里面做了两张图进行状态切换,这两张图同样放
drawable下就可以了
至此,自定义tab的步骤就完成了。如果要做成更复杂的样式,大家可以在此基础上进行扩展。
发表评论
-
JAVA代码混淆
2016-05-05 18:24 1361JAVA代码混淆 <!--[if !supportL ... -
android 监听状态栏被下拉
2015-12-25 17:23 3364Activity的onWindowFocusChange()方 ... -
android使用mount挂载/system/app为读写权限,删除或替换系统应用
2015-11-27 14:13 3944注意:以下代码中#开头的则为需要执行的shell命令,其他的 ... -
Ubuntu 14.04 文件服务器--samba的安装和配置
2015-11-10 10:49 595jingyan.baidu.com/album/00a07f ... -
intellij 打开工程在每个java文件上 有个红色的无效符
2015-07-24 13:52 1704说明该类不是可编译文件。在project Structure中 ... -
logcat命令详解
2015-07-22 16:34 923Android日志系统提供了记录和查看系统调试信息的功能。日 ... -
gradle打包遇到的错误汇总
2015-07-21 11:32 0错误1:A problem occurred ... -
Android读写XML(下)——创建XML文档
2015-04-29 11:02 566在前面的2篇文章Android读写XML(上)—— pack ... -
Android读写XML(中)——SAX
2015-04-29 10:54 586在Android读写XML(上) ... -
Android读写XML(下)——创建XML文档
2015-04-29 10:52 656在前面的2篇文章Android读写XML(上)—— pack ... -
android:configChanges locale 改语言后,该配置不起作用的原因
2015-03-23 14:38 2336@Override public void on ... -
android.app.Fragment$InstantiationException 解决办法
2015-03-23 13:46 1303android.app.Fragment$Instantia ... -
linux 查看内存
2015-02-10 13:08 6911、free监控内存使用情况 #free 2、watc ... -
android fastboot 刷机 指令
2015-01-19 18:31 1461原生bootloader:bootloader-gro ... -
[Android实例] android中进行https连接的方式的详解 (转发)
2015-01-09 15:50 663x 如果不需要验证服务器端证书, ... -
编译android源码apk是否生成odex方法
2014-10-20 17:19 1573其实Android系统默认的配置是,如果没有指定DISABL ... -
关于android源码中的APP编译时引用隐藏的API出现的问题
2014-10-20 15:36 764今天在编译android源码中的计算器APP时发现,竟然无法 ... -
Android系统进程Zygote启动过程的源代码分析
2014-09-17 10:09 449在Android系统中, ... -
Handler和HandlerThread
2014-09-16 16:58 6501.什么是Handler? SDK中关于Handler的说 ... -
怎样识别三洋18650锂电池电芯
2014-09-01 09:52 1062浏览:20384 | 更新:2011-03 ...
相关推荐
tablayout+viewpager自定义tab和自定义指示器。完美解决滑动卡顿。
可通过自定义属性设置选项卡样式,且Tab的数目也可通过属性灵活设置,可设置为文本选项卡或图片选项卡,利用回调监听响应各Tab的点击事件,且设置方法和android原生控件设置点击监听的方法基本一致。
左侧竖向选项卡TAB导航烂,支持viewpager,不依赖viewpager,支持自定义tab样式,自带切换动画
今天开发Android短彩信传统模式,遇到了修改tab的默认样式问题,搜集了一些资料,可用参考。
RadioGroup自定义选项卡样式
实现了Android的底部tab切换界面,并实现了不同tab有不同的标题显示样式。这在项目中很常用。
NULL 博文链接:https://jykenan.iteye.com/blog/855843
Android顶部、底部标签,自定义Dialog、Snackbar、Toast,悬浮按钮,展示图伸缩效果,发送消息界面效果,登录界面效果等。
1. 支持自定义tab样式 2. 支持自定义滑动块样式和位置 3. 支持自定义切换tab的过渡效果 4. 支持子界面的预加载和界面缓存 5. 支持设置界面是否可滑动 6. android:minSdkVersion="14" 7.导入方式 gradle导入 compile ...
初始数据bean,筛选结果bean,tab样式,筛选样式 多排 单选,多选 初始数据bean,筛选结果beantab样式,筛选样式 双列 单项单选,单项多选 初始数据bean,筛选结果bean,tab样式,筛选样式 复杂 单项单选,单项多选 初始...
支持自定义tab样式2.支持自定义滑动块样式和位置3.支持自定义切换tab的过渡效果4.支持子界面的预加载和界面缓存5.支持设置界面是否可滑动6. android:minSdkVersion =“ 14”7.引入方式渐变导入implementation '...
一个比较美观的圆角Tab选项卡切换效果.html一个比较美观的圆角Tab选项卡切换效果.html一个比较美观的圆角Tab选项卡切换效果.html
提供丰富常用的 UI 控件,例如 BottomSheet、Tab、圆角 ImageView、下拉刷新等,使用方便灵活,并且支持自定义控件的样式。 高效的工具方法 提供高效的工具方法,包括设备信息、屏幕信息、键盘管理、状态栏管理等,...
导航功能几乎是所有的APP都具备的基础功能之一,Android系统提供了TabLayout+ViewPager的组合来实现该功能。再使用之初,发现该组合真是无敌了,但是。。。总有一些UI设计师觉得原生TabLayout的下划线样式不符合用户...
Android裡提供了TabHost,讓開發人員可以製做Tab版型;但是預設的樣式一點都不討喜。如果要自己重新設計版面其實也不太難,可直接运行,自定义的tabhost样式
仿Chrome浏览器风格可单独关闭的网页TAB选项卡插件,可以依次打开多个TAB,每个TAB上都有关闭按钮,可以单独被关闭,美化的也很...相当实用强大,TAB中可自定义文字、图片,还可自定义打开一个被嵌套的网页,十分方便。
先看效果: 京东商城底部菜单栏 新浪微博底部菜单栏 ...本次学习效果图: ...第一,主布局文件(启动页main.xml,位于res/layout目录下)代码 ...xml version=....TabHost xmlns:android=...android:id=@+id/tabhost
提供丰富常用的 UI 控件,例如 BottomSheet、Tab、圆角 ImageView、下拉刷新等,使用方便灵活,并且支持自定义控件的样式。 高效的工具方法 提供高效的工具方法,包括设备信息、屏幕信息、键盘管理、状态栏管理等,...
下面小编就为大家分享一篇基于TabLayout中的Tab间隔设置方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
支持自定义tab样式2. 支持自定义滑动块样式和位置3. 支持自定义切换tab的过渡效果4. 支持子界面的预加载和界面缓存5. 支持设置界面是否可滑动6. android:minSdkVersion="14"7.导入方式<1>gradle导入compile '...