求教关于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============

引用 2 楼 jklwan 的回复:

<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>

改成这样就行了

把这句<item name="android:actionBarTabStyle">@style/MyActionBarTabStyle</item>删了,自己测试的多写的东西

时间: 2024-08-04 02:14:31

求教关于ActionBar 样式问题的相关文章

【Android 应用开发】 ActionBar 样式具体解释 -- 样式 主题 简单介绍 Actionbar 的 icon logo 标题 菜单样式改动

作者 : 万境绝尘 ([email protected]) 转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/39269163 演示样例代码下载 : -- GitHub : https://github.com/han1202012/Octopus_ActionBarStyle.git -- CSDN : http://download.csdn.net/detail/han1202012/7926959 一. 样式 和 主题

【Android 应用开发】 ActionBar 样式详解 -- 样式 主题 简介 Actionbar 的 icon logo 标题 菜单样式修改

作者 : 万境绝尘 ([email protected]) 转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/39269163 示例代码下载 : -- GitHub : https://github.com/han1202012/Octopus_ActionBarStyle.git -- CSDN : http://download.csdn.net/detail/han1202012/7926959 一. 样式 和 主题 资源

ActionBar 样式详解 -- 样式 主题 简介

1. 样式资源解析 (1) 样式简介 样式解析 : 样式是设置给 View 组件的多个属性的集合; -- 样式的好处 : 给一个 TextView 设置 文字大小, 颜色, 对齐方式等, 如果需要给多个 TextView 设置同样的属性, 这里使用样式就可以大大节省了代码量; 样式指定 : 每个 View 组件都有一个 style 属性, 可以通过该属性指定 样式, 注意与 android:style 属性区分; (2) 样式标签定义 样式定义的位置 : /res/values/ 目录下的 跟标

【android自定义控件】LinearLayout定义ActionBar样式

其实大家看到都ActionBar说白了,就是自定义的一个Linearlayout或者RelatedLayout:今天就练练LinearLayout 自定义. LinearLayout自定义方法有多种: 1.自定义xml布局,然后加载布局,自定义一个View继承LinearLayout 2.在自定义控件中声明它的所有子元素,然后在Layout文件中像使用LinearLayout一样去进行布局, 第二种比较烦 ,它需要在Layout文件中定义好子元素之后,要在代码 onFinishInflate()

自定义ActionBar标题与菜单中的文字样式

自定义标题文字样式 标题样式是ActionBar样式的一部分,所以要先定义ActionBar的样式 <style name="AppTheme" parent="AppBaseTheme"> <item name="android:actionBarStyle">@style/CustomActionBar</item> </style> 然后在ActionBar的样式中通过android:titl

自定义 ActionBar 标题与菜单中的文字样式

自定义标题文字样式 标题样式是 ActionBar 样式的一部分,所以要先定义 ActionBar 的样式 <style name="AppTheme" parent="AppBaseTheme"> <item name="android:actionBarStyle">@style/CustomActionBar</item> </style> 然后在 ActionBar 的样式中通过 andro

ActionBar(2)自定义标题与菜单中的文字样式

自定义标题文字样式 标题样式是ActionBar样式的一部分,所以要先定义ActionBar的样式 <style name="AppTheme" parent="AppBaseTheme"> <item name="android:actionBarStyle">@style/CustomActionBar</item> </style> 然后在ActionBar的样式中通过android:titl

低版本系统兼容的ActionBar(五)设置ActionBar的全套样式,从未如此简单过

     设定ActionBar的样式,是我们必须掌握的技能,在之前我们可能都需要一行一行的写代码,然后在模拟器上测试效果,但是现在我们有个一个很棒的工具来设定样式.设定ActionBar样式的工作从未如此简单过! http://romannurik.github.io/AndroidAssetStudio/index.html 进入后我们就可以直接在可视化的界面中进行修改了,设定好后直接下载压缩包.复制到res目录下即可.最后要记得把Application或者Activity的主题修改为你做的

ActionBar 自定义布局定义

Android系统中ActionBar默认的布局不美观且难于控制,通过为ActionBar自定义布局的方式可以灵活控制ActionBar. 效果: 工具/原料 android集成开发环境eclipse.ADT android sdk 3.0及以上 方法/步骤 自定义Activity主题和ActionBar样式 在新建的android工程的res/values/styles.xml添加自定义ActionBar样式的代码和自定义Activity主题的代 码,并在AndroidMainfest.xml