【问题标题】:How to set height of actionbar tabs for android如何为android设置动作栏标签的高度
【发布时间】:2014-02-02 07:44:10
【问题描述】:

基本上,我想更改操作栏中选项卡的高度。这个问题在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>

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

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

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

已解决,如中所述:

ActionBar with navigation tabs changes height with screen orientation

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

显然这是一个来自 android sdk 的错误......虽然我从来没有遇到过这样的错误 :(。希望这对其他人有所帮助。

【问题讨论】:

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


    【解决方案1】:

    通过将应用程序主题属性 android:actionBarSize 和 ActionBar.TabView 样式属性 android:minHeight(或高度)设置为 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);
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-07
        • 2017-11-23
        • 1970-01-01
        • 2016-10-19
        相关资源
        最近更新 更多