You wrote:
How do I get the same 80dp height in portrait mode that I have in landscape mode?
By setting both the Application
theme attribute android:actionBarSize
and the ActionBar.TabView
style attribute android:minHeight
(or height
) to 80 dip.
A basic example:
<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>
Set theme in Manifest:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/ThemeHoloWithActionBar" >
Add some tabs to the ActionBar in an Activity:
@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);
}
This produces tabs with 80 dip height in portrait mode:
and tabs with 80 dip height in landscape mode:
EDIT:
For this example, SDK versions in the Manifest were set to:
android:minSdkVersion="12"
android:targetSdkVersion="15"
According to OP, the example works with these SDK settings. However, if targetSkdVersion
is instead set to 16 or 17, the example doesn't work. OP has filed a bug report:
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…