Android Fragments 如何为Android设置操作栏标签的高度

ndasle7k  于 2023-01-13  发布在  Android
关注(0)|答案(2)|浏览(208)

基本上,我想改变操作栏中标签的高度。这个问题在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的bug ...虽然我从来没有遇到过这样的bug:(。希望这对其他人有帮助。

rqqzpn5f

rqqzpn5f1#

从我在文档中看到的情况来看,似乎无法更改选项卡高度。但您可以使用一个变通方案-尝试使用PagerSlidingTabStrip而不是ActionbarTabs。您可以轻松地更改高度。

6xfqseft

6xfqseft2#

通过将应用程序主题属性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>

在清单中设置主题:

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

相关问题