Intereting Posts
Как сделать Rotate3dAnimation более плавным? Меню Упорядочение различий из-за иерархии фрагментов и активности. (onCreateOptionsMenu) Android gradle buildTypes: Дублировать класс Анимация CardView: поднять и развернуть по клику? BluetoothLeScanner.startScan с Android 6.0 не обнаруживает устройств Как я могу удалить заголовок и значок полностью в Actionbar sherlock? ViewPager в DialogFragment – IllegalStateException: Фрагмент не имеет вида Как добавить нижний колонтитул в NavigationView – библиотеку дизайна поддержки Android? PhoneStateListener onSignalStrengthsChanged перестает вызываться в службе Показать пользовательский смайлик в Android-клавиатуре Учебник для Android-приложения с PHONEGAP Понимание того, когда и почему использовать разные потоки Android Java.net.SocketException: sendto failed: EPIPE (Сломанная труба) через соединение с данными на localhost Android: доступ к string.xml с использованием имени переменной MAILTO Ссылка по электронной почте, чтобы начать новое письмо

ActionBar с вкладками навигации изменяет высоту с ориентацией экрана

Моя цель – увеличить высоту ActionBar для портретного режима. В настоящее время я устанавливаю

андроид: 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.

Введите описание изображения здесь

Тем не менее, я поворачивал экран в портретный режим, поэтому высота изменяется.

Введите описание изображения здесь

Примечание. Я делаю следующие вызовы в коде.

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

Я разрабатываю Nexus 7 с Android 4.2.

Как получить ту же самую высоту 80dp в портретном режиме, что и в ландшафтном режиме?

Solutions Collecting From Web of "ActionBar с вкладками навигации изменяет высоту с ориентацией экрана"

Вы написали:

Как получить ту же самую высоту 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, пример не работает. ОП подала отчет об ошибке: