码迷,mamicode.com
首页 > 其他好文 > 详细

求教关于ActionBar 样式问题

时间:2014-10-22 00:42:52      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   http   color   io   os   ar   java   

============问题描述============


有关 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  默认的白色

bubuko.com,布布扣

============解决方案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>删了,自己测试的多写的东西

求教关于ActionBar 样式问题

标签:android   style   blog   http   color   io   os   ar   java   

原文地址:http://www.cnblogs.com/lmyangbk/p/4041960.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!