首页 > 代码库 > 求教关于ActionBar 样式问题
求教关于ActionBar 样式问题
============问题描述============
有关 actionBar 自定义样式...
我希望自定义 ActionBar 中 Tab 标签页标题的字体样式,应该是在 style.xml 中添加
android:actionBarTabTextStyle 样式吧?但是实际却并没有效果.
PS1: style.xml 文件中的 title 栏的背景色(android:background) 和字体颜色(android:titleTextStyle) 有效果
PS2: style.xml 文件中修改 tab 标签页背景色的属性(android:backgroundStacked)也生效
PS3: 唯独(actionBarTabTextStyle)没效果
PS4: 我是 actionBar+viewPager+Fragment 实现多页面滑动效果
难道一定要自定义一个 Layout 然后在 通过 getActionBar() 去 setCustomView(View v) 么?可是 title 的背景色和字体有效果,就连 tab 的背景色都有效果,没道理就是 actionBarTabTextText 没效果啊?
一下是我的 style.xml 文件代码... Fragment+viewPager+actionBar 的具体实现就不贴出来了..
<resources xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Base application theme for API 14+. This theme completely replaces AppBaseTheme from BOTH res/values/styles.xml and res/values-v11/styles.xml on API 14+ devices. --> <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <!-- API 14 theme customizations can go here. --> </style> <style name="NoSpamActionBarTheme" parent="@android:style/android:Theme.Holo.Light.DarkActionBar"> <item name="android:actionBarStyle">@style/NoSpamActionBarStyle</item> </style> <style name="NoSpamActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid"> <item name="android:background">@color/back_color</item> <item name="android:backgroundStacked">@color/tab_back_color</item> <item name="android:titleTextStyle">@style/NoSpamTitleStyle</item> <item name="android:actionBarTabTextStyle">@style/NoSpamTabText</item> </style> <style name="NoSpamTitleStyle"> <item name="android:textColor">@color/title_color</item> <item name="android:textSize">19sp</item> </style> <style name="NoSpamTabText" parent="@android:style/Widget.Holo.ActionBar.TabText"> <item name="android:textColor">@color/tab_text_color</item> <item name="android:textSize">18sp</item> </style> </resources>
以下是 actionBar 构造代码
/** * * 安装电话黑名单标签导航 */ public void setupPhoneBlackListTab(){ Tab phoneBlackListTab = actionBar.newTab(); phoneBlackListTab.setText("骚扰电话"); phoneBlackListTab.setTabListener(new NoSpamTabListener()); actionBar.addTab(phoneBlackListTab); }
以下是 color.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="back_color">#99CC00</color> <color name="title_color">#FFFFFF</color> <color name="tab_back_color">#FFFFFF</color> <color name="tab_text_color">#000000</color> </resources>
最后是实际效果图,tab 字体应该是黑色,可实际是 DarkActionBar 默认的白色
============解决方案1============
<style name="NoSpamActionBarTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/NoSpamActionBarStyle</item>
<item name="android:titleTextStyle">@style/NoSpamTitleStyle</item>
<item name="android:actionBarTabStyle">@style/MyActionBarTabStyle</item>
<item name="android:actionBarTabTextStyle">@style/NoSpamTabText</item>
</style>
<style name="NoSpamActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid">
<item name="android:background">@color/back_color</item>
<item name="android:backgroundStacked">@color/tab_back_color</item>
</style>
改成这样就行了
============解决方案2============
把这句<item name="android:actionBarTabStyle">@style/MyActionBarTabStyle</item>删了,自己测试的多写的东西
求教关于ActionBar 样式问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。