3

情况:在我的应用程序(minSDK:14)中,我有一个自定义的ActionBar. 在我customView的一个有一个EditText和一些Buttons

ActionBar本身具有选项卡并用于在FragmentsViewPager. 位于customView选项卡上方。我有 2 种可能的设置方案(取决于应用程序的设置):

1)。选项卡使用图标,在这种情况下,定义为“ sMain”的主题应用于Activity

2)。选项卡使用文本,并且Theme.Holo应用于Activity

屏幕旋转到横向时的问题:

场景 #1:整体ActionBar变成 1 行。选项卡区域现在占据整个屏幕宽度,而我customView只是位于右侧并与选项卡重叠。这种行为完全搞乱了我的 UI。

场景#2:也变成了ActionBar1 行,但现在选项卡“堆叠”为左侧的下拉菜单,并且customView占据了屏幕宽度的其余部分。这也弄乱了我的用户界面,因为:

- Holo 主题的选项卡背景与我的设计不同customView,它不是设计在选项卡菜单旁边

-TABS现在由文本表示,该文本可以更长或更短,每当更改选项卡时,我的CustomView的宽度会更改(因此,文本变成所需的房间)

问题: 是否有可能强制ActionBar始终为 2 行,所以我的 customView 有它的空间?如果没有,还有其他解决方案吗?

如果它很重要,下面是我的 ActionBar 的设置和相应的主题:

        actionBar = getActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    actionBar.setDisplayShowHomeEnabled(true);
    actionBar.setDisplayUseLogoEnabled(false);
    actionBar.setIcon(new ColorDrawable(Color.TRANSPARENT));
    actionBar.setDisplayShowCustomEnabled(true);
    actionBar.setCustomView(R.layout.action_bar_main);
            // working with customView's subviews

款式:

 <style name="sMain" parent="@android:style/Theme.Holo">
    <item name="android:actionBarStyle">@style/mTabAreaBackground</item>
    <item name="android:actionBarTabStyle">@style/ActionBarTabStyle</item>
</style>
    <style name="sGunView" parent="@android:style/Theme.Holo">
        <item name="android:windowBackground">@android:color/black</item>
    <item name="android:actionBarStyle">@style/mTabAreaBackground</item>
    <item name="android:actionBarTabStyle">@style/ActionBarTabStyle</item>
</style>

<style name="mTabAreaBackground" parent="@android:style/Widget.Holo.ActionBar.Solid">
    <item name="android:backgroundStacked">#0d0d0d</item>
</style>

<style name="ActionBarTabStyle" parent="@android:style/Widget.Holo.ActionBar.TabView">
    <item name="android:background">@android:color/transparent</item>
    <item name="android:paddingLeft">0dp</item>
    <item name="android:paddingRight">0dp</item>
</style>
4

0 回答 0