Ответ 1
Вы писали:
Как получить ту же высоту 80dp в портретном режиме, что и в ландшафтном режиме?
Установив оба атрибут 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>
Задайте тему в манифесте:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/ThemeHoloWithActionBar" >
Добавьте несколько вкладок в ActionBar в 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);
}
Это создает вкладки с 80 высотой падения в портретном режиме:
и вкладки с 80 глубиной падения в ландшафтном режиме:
ИЗМЕНИТЬ:
В этом примере версии SDK в манифесте были установлены на:
android:minSdkVersion="12"
android:targetSdkVersion="15"
Согласно OP, пример работает с этими настройками SDK. Однако, если вместо targetSkdVersion
установлено значение 16 или 17, пример не работает. OP отправил отчет об ошибке: