gpt4 book ai didi

android - 带有导航选项卡的 ActionBar 会随着屏幕方向改变高度

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:04:28 24 4
gpt4 key购买 nike

我的目标是增加纵向模式的 ActionBar 高度。我目前设置

android:actionBarSize

在我的 Themes.xml 中。

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="DayTheme" parent="android:style/Theme.Holo.Light">
<item name="android:actionBarSize">@dimen/actionBarHeight</item>
<item name="android:actionBarTabTextStyle">@style/tab_indicator_text_dark</item>
</style>
<style name="NightTheme" parent="android:style/Theme.Holo">
<item name="android:actionBarSize">@dimen/actionBarHeight</item>
<item name="android:actionBarTabTextStyle">@style/tab_indicator_text_light</item>
</style>
</resources>

我将 ActionBar 高度增加到 80dp,在横向模式下获得了预期的效果。

enter image description here

但是,当我将屏幕旋转到纵向模式时,高度会像这样变化。

enter image description here

请注意,我在代码中进行了以下调用。

final ActionBar bar = getActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
bar.setDisplayShowTitleEnabled(false);
bar.setDisplayShowHomeEnabled(false);

我正在使用 android 4.2 的 Nexus 7 进行开发。

如何在纵向模式下获得与横向模式下相同的 80dp 高度?

最佳答案

你写道:

How do I get the same 80dp height in portrait mode that I have in landscape mode?

通过设置 both Application 主题属性 android:actionBarSize ActionBar.TabView 样式属性 android:minHeight(或 height)为 80 dip。

一个基本的例子:

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

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

在 list 中设置主题:

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

在 Activity 中向 ActionBar 添加一些选项卡:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

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

这会在纵向模式下产生 80 倾角高度的标签:

enter image description here

以及横向模式下倾斜高度为 80 度的标签:

enter image description here

编辑:

对于此示例, list 中的 SDK 版本设置为:

android:minSdkVersion="12"
android:targetSdkVersion="15"

根据 OP,该示例适用于这些 SDK 设置。但是,如果将 targetSkdVersion 设置为 16 或 17,则该示例不起作用。 OP 已提交 bug report:

关于android - 带有导航选项卡的 ActionBar 会随着屏幕方向改变高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13827762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com