【问题标题】:How to customize tabs actionbar如何自定义标签操作栏
【发布时间】:2014-01-14 04:22:32
【问题描述】:

基本上我想让actionbar中的标签看起来像这样:(注意这是actionbar,而不是tabhost)

这是我目前所拥有的:

如您所见,问题在于选项卡之间的填充太大,无法适应整个屏幕。使标签栏可滑动。我想要固定标签(不可滑动)。

我怎么能这样做?如何修复标签栏的填充?

感谢您阅读问题。

【问题讨论】:

    标签: android android-layout android-actionbar android-fragmentactivity


    【解决方案1】:

    如果您想删除操作栏标签中的标签指示符,您可以尝试如下 Remove tab Indicator.

    如需更多自定义,请尝试Actionbar style generator

    【讨论】:

    • 谢谢,如果我想将标签指示器向下移动 5 dp 怎么办,因为正如您在我的版本中看到的那样,标签指示器会覆盖文本。或者更好的是,我如何使指示器像图片中一样,这意味着只是使背景变灰。 :)
    • 谢谢,这正是我想要做的,但他们提供的解决方案对我不起作用(至于线程上的其他一些人)。我试过:100dp100dp
    【解决方案2】:

    你应该使用 Support.v4.pagerslider 或 pager 滑动标签条

    如果您想自定义这里是代码,使用操作栏选项卡是浪费时间

    use below link to style actionbar

    你需要改变 tab_indicator_ab_example.xml 里面的drawable,如下所示

         <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    
         <item android:drawable="@android:color/transparent" 
             android:state_focused="false" 
             android:state_pressed="false" 
             android:state_selected="false"/>
    <item android:drawable="@drawable/layer_bg_selected_tabs_green" 
        android:state_focused="false" 
        android:state_pressed="false" 
        android:state_selected="true"/>
    
    <!-- Focused states -->
    <item android:drawable="@android:color/transparent" 
        android:state_focused="true" 
        android:state_pressed="false" 
        android:state_selected="false"/>
    <item android:drawable="@drawable/layer_bg_selected_tabs_green" 
        android:state_focused="true" android:state_pressed="false" 
        android:state_selected="true"/>
    
    <!-- Pressed -->
    <!-- Non focused states -->
     <item android:drawable="@drawable/tab_unselected_pressed_example" 
         android:state_focused="false" android:state_pressed="true" 
         android:state_selected="false"/>
    <item android:drawable="@drawable/layer_bg_selected_tabs_green" 
        android:state_focused="false" android:state_pressed="true" 
        android:state_selected="true"/>
    
    <!-- Focused states -->
    <item android:drawable="@android:color/transparent" 
        android:state_focused="true" 
        android:state_pressed="true" 
        android:state_selected="false"/>
    <item android:drawable="@drawable/layer_bg_selected_tabs_green" 
        android:state_focused="true" android:state_pressed="true" 
        android:state_selected="true"/>
         </selector>
    

    创建 xml layer_bg_selected_tabs_green.xml

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <!-- code for tab indicator -->
     <item>
        <shape android:shape="rectangle" >
            <solid android:color="#F58634" />
            <padding android:bottom="3dp" />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#FFFFFF" />
        </shape>
    </item>
    </layer-list>
    

    在此处更改指示器并填充更改高度 Solid 更改指示器的颜色

    【讨论】:

      【解决方案3】:

      好吧,我通过覆盖操作栏的样式来做到这一点:

      <style name="CustomActionBarTheme"
             parent="@android:style/Theme.Holo.Light.DarkActionBar">
          <item name="android:actionBarTabTextStyle">@style/TabTextStyle</item>
          <item name="actionBarTabTextStyle">@style/TabTextStyle</item>
          <item name="android:scrollHorizontally">false</item>
          <item name="android:paddingLeft">0dp</item>
          <item name="android:paddingRight">0dp</item>
      </style>
      

      希望这可以帮助任何人遇到这个问题:)。

      【讨论】:

        猜你喜欢
        • 2021-12-13
        • 2021-07-08
        • 1970-01-01
        • 2012-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多