如何自定义标签操作栏

时间:2014-01-14 04:22:33

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

基本上我想在操作栏中制作如下选项卡:(注意这是操作栏,而不是tabhost)

enter image description here

这是我到目前为止所拥有的: enter image description here

正如您所看到的那样,问题是标签之间的填充太大,不适合整个屏幕。使标签栏可滑动。我想要固定标签(不可滑动)。

我怎么能这样做?我怎么能修复tabbar的填充?

感谢您阅读此问题。

3 个答案:

答案 0 :(得分:2)

如果您要删除操作栏标签中的标签指示符,您可以尝试使用 Remove tab Indicator

要进行更多自定义,请尝试使用此Actionbar style generator

答案 1 :(得分:1)

您应该使用Support.v4.pagerslider或寻呼机滑动标签条

使用操作栏标签是浪费时间,如果你想在这里定制是代码

use below link to style actionbar

您需要在drawable中更改tab_indicator_ab_example.xml,如下所示

     <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>

此处更改指示器和填充chnages高度实心更改指示器的颜色

答案 2 :(得分:0)

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

<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>

希望这有助于任何人遇到这个问题:)。