如何删除操作栏标签填充?

时间:2014-10-26 04:41:13

标签: android android-layout android-actionbar android-tabs

我正在使用android支持库来创建TabBar。我能够使用样式自行修改TabBar,但我不知道为什么在第一个标签中有填充,第二个标签中有右边填充.I我无法通过覆盖样式来删除它们。

布局文件代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:baselineAligned="false" >

</LinearLayout>

Java文件代码:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.all_contacts);
        final ActionBar actionBar = getActionBar();

        // Specify that tabs should be displayed in the action bar.
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        // Create a tab listener that is called when the user changes tabs.
        ActionBar.TabListener tabListener = new ActionBar.TabListener() {

            @Override
            public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onTabSelected(Tab tab, FragmentTransaction ft) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onTabUnselected(Tab tab, FragmentTransaction ft) {
                // TODO Auto-generated method stub

            }
        };

        // Add 3 tabs, specifying the tab's text and TabListener
        for (int i = 0; i < 2; i++) {
            actionBar.addTab(actionBar.newTab().setText("Tab " + (i + 1))
                    .setTabListener(tabListener));
        }}

我的风格代码是:

<!-- the theme applied to the application or activity -->
    <style name="CustomActionBarTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/MyActionBar</item>
        <item name="android:actionBarTabStyle">@style/MyActionBar.Tab</item>
        <item name="android:actionBarTabTextStyle">@style/My.TabText.Style</item>
    </style>

    <!-- ActionBar styles -->
    <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid">
        <item name="android:background">@color/white</item>
        <item name="android:padding">0dp</item>
    </style>

    <style name="MyActionBar.Tab" parent="@android:style/Widget.Holo.Light.ActionBar.TabBar">
        <item name="android:background">@drawable/tab_bar_background</item>
        <item name="android:padding">0dp</item>
        <item name="android:gravity">center</item>
    </style>

    <style name="My.TabText.Style" parent="@android:style/Widget.Holo.Light.ActionBar.TabText">
        <item name="android:textAppearance">@android:style/TextAppearance.Medium</item>
        <item name="android:textSize">15sp</item>
        <item name="android:textStyle">bold</item>
        <item name="android:textColor">@color/black</item>
        <item name="android:textAllCaps">true</item>
        <!-- <item name="android:ellipsize">none</item> -->
        <item name="android:maxLines">1</item>
    </style>

我已附上以下屏幕截图供参考。

enter image description here

1 个答案:

答案 0 :(得分:0)

最后我找到了自己问题的答案。我无法删除填充但是我在左右两侧使用相同的背景颜色。我使用了以下代码:

 <item name="android:actionBarTabBarStyle">@style/MyActionBar.TabBar</item>

<style name="MyActionBar.TabBar" parent="android:style/Widget.Holo.Light.ActionBar.TabBar">
    <item name="android:background">@color/gray_background</item>
</style>