【问题标题】:Styling tabs of ActionBar SherlockActionBar Sherlock 的样式选项卡
【发布时间】:2012-04-14 16:11:50
【问题描述】:

所以我正在尝试设置我使用 ActionbarSherlock 库实现的 ActionBar 选项卡的样式。我已经设法用图标本身来设置栏的样式,而不是它下面的选项卡。有谁知道是什么阻止我这样做?这是我的代码:

<?xml version="1.0" encoding="utf-8"?>
  <resources>
    <style name="CustomStyleTostrams" parent="Theme.Sherlock.Light">
            <item name="actionBarTabStyle">@style/customActionBarStyle</item>
            <item name="android:actionBarTabStyle">@style/customActionBarStyle</item>
        </style>

        <style name="customActionBarStyle" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
            <item name="background">@drawable/bg_tabs_image</item>
            <item name="android:background">@drawable/bg_tabs_image</item>
        </style>
  </resources>

更新:所以我想出了一些办法。我正在使用带有 TabWidget 的标准 TabManager(实现 TabHost.OnTabChangedListener),由于某种原因,它不适用于正常样式。我通过复制“ABS:Styled”示例测试了上面的代码。但是,例如,我不知道如何实现 onTabSelected 和 onTabUnSelected。做这个的最好方式是什么?使用 ABS:样式化示例,还是尝试以不同的方式设置 TabWidget 样式?

【问题讨论】:

标签: android styling android-actionbar actionbarsherlock theming


【解决方案1】:

我通过创建以下样式来做到这一点:注意 tab_indicator_ab_holo 是我的自定义九补丁

<style name="SearchTabView"  parent="Widget.Sherlock.ActionBar.TabView">
    <item name="android:background">@drawable/tab_indicator_ab_holo</item>
</style>

<style name="SearchTheme" parent="Theme.Sherlock.Light.DarkActionBar">
    <item name="actionBarTabStyle">@style/SearchTabView</item>
    <item name="android:actionBarTabStyle">@style/SearchTabView</item>
</style>

【讨论】:

    【解决方案2】:

    在fragments_tabs_pager.xml 中(如果那是您正在使用的那个)。只需设置tabwidget的背景:TabWidget android:id="@android:id/tabs" 机器人:方向=“水平” android:background="#F0F0F0" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="0"

    至于样式选择器、潜水器等的问题。我还不知道,我认为我将标签栏与您可以在操作栏本身内部拥有的标签混淆了。操作栏中的选项卡是我唯一找到好的答案的选项卡。所以,如果可以的话,请回答这个问题,Jake :)

    【讨论】:

    • 感谢您的回答!这让我可以设置标签的背景样式。但是,我还需要设置选项卡下的小线样式。