情况:在我的应用程序(minSDK:14)中,我有一个自定义的ActionBar
. 在我customView
的一个有一个EditText
和一些Buttons
。
它ActionBar
本身具有选项卡并用于在Fragments
由ViewPager
. 位于customView
选项卡上方。我有 2 种可能的设置方案(取决于应用程序的设置):
1)。选项卡使用图标,在这种情况下,定义为“ sMain
”的主题应用于Activity
2)。选项卡使用文本,并且Theme.Holo
应用于Activity
屏幕旋转到横向时的问题:
场景 #1:整体ActionBar
变成 1 行。选项卡区域现在占据整个屏幕宽度,而我customView
只是位于右侧并与选项卡重叠。这种行为完全搞乱了我的 UI。
场景#2:也变成了ActionBar
1 行,但现在选项卡“堆叠”为左侧的下拉菜单,并且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>