【问题标题】:Android action bar tab bar dividerAndroid 操作栏标签栏分隔线
【发布时间】:2012-10-12 05:25:03
【问题描述】:

我在为分隔线设置可绘制对象时遇到问题。我的 style.xml 看起来像这样:

<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="HCLTheme" parent="android:Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/HCLActionBarStyle</item>
        <item name="actionBarStyle">@style/HCLActionBarStyle</item>
        <item name="android:actionBarTabBarStyle">@style/HCLActionBarTabBarStyle</item>
        <item name="android:actionBarTabStyle">@style/HCLActionBarTabStyle</item>
    </style>

    <style name="HCLActionBarStyle" parent="android:style/Widget.Holo.ActionBar">
        <item name="android:background">@drawable/hcl_actionbar_drawable</item>
        <item name="background">@drawable/hcl_actionbar_drawable</item>
        <item name="android:titleTextStyle">@style/HCLActionBarTitle</item>
    </style>

    <style name="HCLActionBarTabBarStyle" parent="@android:style/Widget.Holo.ActionBar.TabBar">
        <item name="android:showDividers">middle</item>
        <item name="android:divider">@drawable/divider</item>
        <item name="android:dividerPadding">0dp</item>
    </style>

    <style name="HCLActionBarTabStyle" parent="@android:style/Widget.Holo.ActionBar.TabView">
        <item name="android:background">@drawable/action_bar_tab_style</item>
    </style>

    <style name="HCLActionBarTitle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
        <item name="android:textColor">@android:color/white</item>
    </style>

</resources>

在 HCLActionBarTabBarStyle 中,我将 @drawable/divider 设置为标签分隔符。这个drawable是一个9patch的图像,一条垂直的黑线。

在我在 xml 中设置可绘制的分隔线之前,我得到了正常的白色分隔线,如下所示:

在styles.xml中设置drawable后,我得到了这个:

所以你可以看到分隔线变宽了,而不是 9patch 图像中的黑色垂直线。我什至不确定分隔线的可绘制对象必须是什么?图片或图层列表,或者它可以是一种颜色?事实上,我尝试了所有这 3 个,但没有成功。

【问题讨论】:

    标签: android styles themes tabbar divider


    【解决方案1】:

    在自定义样式上使用“actionBarDivider”的属性。

    如下所示

    <style name="AppTheme" parent="AppBaseTheme">
         <!-- You app specific customization -->
         <item name="android:actionBarStyle">@style/MyActionBar</item>
         <item name="android:actionMenuTextColor">@color/menu_state_list</item>
         <item name="android:actionBarTabStyle">@style/tabStyle</item>
         <item name="android:actionBarTabTextStyle">@style/tabTextColor</item>
    
         <!-- Set it like this -->
         <item name="android:actionBarDivider">@drawable/verticle_marker_thin</item>
    </style>
    

    【讨论】:

    • 这仅适用于 api 级别 14 及以上
    【解决方案2】:

    创建标签分隔符图片

    在样式中添加如下所示的项目

    <item name="android:actionBarTabBarStyle">@style/customTabBar</item> 
    

    操作栏标签指示器中的devider代码

    <style name="customTabBar" parent="@style/Widget.AppCompat.ActionBar.TabBar">
    <item name="android:showDividers">middle</item>
    <!-- give your divider here -->
    <item name="android:divider">@drawable/tabindicator</item>
    <item name="android:dividerPadding">0dp</item>
    

    @drawble/tabindicator 是 drawble 中的图片

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 2019-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多