如何设置android的操作栏选项卡的高度

时间:2014-01-14 09:48:41

标签: android android-layout android-fragments android-tabs android-styles

基本上,我想更改动作栏中标签的高度。在stackoverflow上已多次询问此问题,例如:

ActionBar tabs height

我已尝试过大多数解决方案,但没有任何效果,这是我的代码。

    <style name="CustomActionBarTheme" parent="@android:style/Theme.Holo">
    <item name="android:scrollHorizontally">false</item>
    <item name="android:paddingLeft">0dp</item>
    <item name="android:paddingRight">0dp</item>
    <item name="android:actionBarSize">80dp</item>
    <item name="actionBarSize">80dp</item>
    <item name="android:actionBarTabStyle">@style/ActionBarTabStyle</item>
</style>

<style name="ActionBarTabStyle" parent="@android:style/Widget.Holo.ActionBar.TabView">
    <item name="android:height">80dp</item>
</style>

显然,代码只会改变操作栏高度,而不是我想要的标签栏高度。这是参考图片:

enter image description here enter image description here

如您所见,底部的操作栏更高。但在操作栏模式下,标签高度保持不变。

为什么会这样?我错过了什么??? 提前谢谢你:)。

解决,如:

ActionBar with navigation tabs changes height with screen orientation

https://code.google.com/p/android/issues/detail?id=41792

显然这是来自android sdk的一个bug ...从来没有遇到过像这样的bug :(。希望这能有助于其他人。

2 个答案:

答案 0 :(得分:1)

通过将Application主题属性android:actionBarSize和ActionBar.TabView样式属性android:minHeight(或height)设置为80 dp。 一个基本的例子:

<style name="ThemeHoloWithActionBar" parent="android:Theme.Holo.Light">
    <item name="android:actionBarTabStyle">@style/ActionBarTabStyle</item>
    <item name="android:actionBarSize">80dp</item>
</style>

<style name="ActionBarTabStyle" parent="@android:style/Widget.Holo.ActionBar.TabView">
    <item name="android:minHeight">80dp</item>
</style>

在Manifest中设置主题:

   <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/ThemeHoloWithActionBar" >

活动

        ActionBar actionbar = getActionBar();
        actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        actionbar.setDisplayShowTitleEnabled(false);
        actionbar.setDisplayShowHomeEnabled(false);
        ActionBar.Tab tabA = actionbar.newTab().setText("Tab A");
        ActionBar.Tab tabB = actionbar.newTab().setText("Tab B");
        ActionBar.Tab tabC = actionbar.newTab().setText("Tab C");
        tabA.setTabListener(new MyTabsListener());
        tabB.setTabListener(new MyTabsListener());
        tabC.setTabListener(new MyTabsListener());
        actionbar.addTab(tabA);
        actionbar.addTab(tabB);
        actionbar.addTab(tabC);

答案 1 :(得分:0)

从我在文档中看到的内容来看,似乎无法更改标签高度。但您可以使用解决方法 - 尝试使用PagerSlidingTabStrip而不是ActionbarTabs。你可以轻松改变那里的高度。