【问题标题】:How to style ActionaBar Tab text in Android?如何在 Android 中设置 ActionaBar Tab 文本的样式?
【发布时间】:2012-10-03 04:10:49
【问题描述】:

我正在使用 ActionBarShrelock 为预蜂窝设备提供操作栏。 我的 Themes.xml 文件中有以下代码...

 <style name="My.Tab.Style" parent="@android:style/Widget.TabWidget">
        <item name="android:textAppearance">@style/MyCustomTabTextStyle</item>
    </style>

   <style name="MyCustomTabTextStyle" parent="Widget.Sherlock.ActionBar.TabText">
        <item name="android:textAppearance">@android:style/TextAppearance.Medium</item>
        <item name="android:textSize">14sp</item>
        <item name="android:textStyle">bold</item>
        <item name="android:textColor">@color/tabbar_text_color</item>
    </style>

比我把它当做

<item name="android:actionBarTabTextStyle">@style/My.Tab.Style</item>
<item name="actionBarTabTextStyle">@style/My.Tab.Style</item>

谁能解释为什么我在 Tab 的最后一个字母上有一些阴影?我怎样才能摆脱它?请帮助..我已经尝试了一切,但那个影子总是在那里..

【问题讨论】:

    标签: android android-actionbar actionbarsherlock android-theme


    【解决方案1】:

    在文件夹值中添加

    <item name="actionBarTabTextStyle">@style/My.TabText.Style</item>
    

    在文件夹值-v14

    <item name="android:actionBarTabTextStyle">@style/My.TabText.Style</item>
    

    【讨论】:

      【解决方案2】:

      我使用自定义样式解决了这个问题。

      1. 首先我创建了一个自定义样式

        <style name="My.TabText.Style" parent="@style/Widget.Sherlock.ActionBar.TabText">       
            <item name="android:textAppearance">@android:style/TextAppearance.Medium</item>
            <item name="android:textSize">16sp</item>
            <item name="android:textStyle">bold</item>
            <item name="android:textColor">@color/tabbar_text_color</item>
            <item name="android:textAllCaps">false</item>
            <!-- <item name="android:ellipsize">none</item> --> 
            <item name="android:maxLines">1</item>
        </style>
        
      2. 比我在主题中使用的那种风格

        <item name="actionBarTabTextStyle">@style/My.TabText.Style</item>
        <item name="android:actionBarTabTextStyle">@style/My.TabText.Style</item>
        

      【讨论】:

      • API-14 中引入了android:textAllCaps 属性,这将使该解决方案在冰淇淋三明治之前的平台上无效。我仍在寻找一个可行的解决方案,比如说 API-11(只是省略属性的 android: 部分由于某种原因不起作用)。参考:developer.android.com/reference/android/R.attr.html#textAllCaps
      • @dbm ActionBarSherlock API 仅使用 ICS (4.0.0) 之前的设备。以上代码仅适用于 ICS 之前的设备。您在项目中使用 ActionBarShelock API 吗?
      • 很抱歉浪费了您的时间。我没有正确阅读问题和您的答案;我使用的是 ActionBarCompat,而不是 Sherlock。
      【解决方案3】:

      据我所知,ActionBar Shelock 使用与普通操作栏相同的内容。基于该假设:

      我之前给出的答案 ActionBar text color

      还有一个生成器http://jgilfelt.github.com/android-actionbarstylegenerator/

      【讨论】:

      • 这是一个很好的答案.. 但这真的解决了我的问题吗.. 正如您在图片中看到的那样,我已经更改了操作栏中的所有内容(背景、textColor、textSize 等)..我唯一的问题是标签上的文本(登录和加入会议)的行为。为什么它们是特殊效果?我怎样才能摆脱它?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-13
      • 1970-01-01
      • 2015-04-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 2015-05-11
      相关资源
      最近更新 更多