android修改tab 导航 指示器颜色
时间:2014-05-15 03:49:32
收藏:0
阅读:401
我其实想修改的上面的蓝色条条,改成红色。
这个问题实在是困扰我了太长时间。之前参照google的这个文章:
https://developer.android.com/training/basics/actionbar/styling.html
但是事与愿违,我发现竟然连我整个tab颜色都改了。
觉得很奇怪,为什么google给的方法是修改整个tab?难道google搞错了?
网上找了很久,发现很多人都在问这个问题,而实际解决的人很少。偶尔有几个解决的,也是采用google的那个方法。但是我的不对啊!
这个问题一直被放置。。中间几次各种尝试,不行。今天又搜索,找到一个文章,我大致看了一下,还是采用google的方法,不过他附带了源码,有些疑问,为什么他的颜色可以修改?就下载他的源码运行看看效果。发现果然改掉了。这是为什么?最后发下,奥秘在于他采用的图片,是上面透明,底下带颜色的。而我之前采用的都是上下都有颜色,所以才会把整个tab覆盖。
就是这种图片:
呵呵,终于找到原因。
下面说下具体流程吧:这个流程上面给的那个google的文章有。
一、修改系统的styles.xml.V14以上版本在values-v14文件夹下:
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <!-- API 14 theme customizations can go here. --> <item name="android:actionBarStyle">@style/my_actionbar_style</item> <item name="android:actionOverflowButtonStyle">@style/MyCustomTheme.OverFlow</item> <!-- it‘s work --> <item name="android:homeAsUpIndicator">@drawable/upcaret</item> <!-- it‘s work --> <!-- <item name="android:actionButtonStyle">@style/my_actionbar_tabbar_style</item> --> <!-- 设置ActionBar Tab的样式,例如下面的红色指引,Tab之间的间隙等等 --> <item name="android:actionBarTabStyle">@style/myTabView</item> <!-- 设置ActionBar Tab字体的样式 --> <!-- <item name="android:actionBarTabTextStyle">@style/myTabText</item> --> </style>
<style name="myTabView" parent="@android:style/Widget.Holo.Light.ActionBar.TabView"> <item name="android:background">@drawable/tab_indicator</item> <item name="android:paddingLeft">8dip</item> <item name="android:paddingRight">8dip</item> </style>
二、在res下的drawable文件夹下(如果没有,自己创建一个)创建tab_indicator.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="false" android:state_pressed="false" android:drawable="@android:color/transparent" /> <item android:state_selected="false" android:state_pressed="true" android:drawable="@android:color/transparent" /> <item android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/base_tabpager_indicator_selected" /> <item android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/base_tabpager_indicator_selected" /> </selector>至于神器的那个drawable图片我上传了一份,大家可以在此的基础了换颜色和修改高度。地址:http://pan.baidu.com/s/1ozNKM
最终效果:
参考资料:
https://developer.android.com/training/basics/actionbar/styling.html
http://blog.csdn.net/xiaanming/article/details/9971721
评论(0)