Android (ActionBarSherlock) Есть ли способ сохранить ту же самую высоту ActionBar как в портретной, так и в альбомной ориентации?

Я работаю с ActionBar и ActionBarSherlock в течение последних нескольких дней, и у меня возникают некоторые проблемы при заполнении некоторой информации в ActionBar.

Когда приложение работает в портретном режиме, ActionBar выглядит отлично, и все данные могут отображаться, например:

ActionBar в портретном режиме

Но когда я переключу приложение, которое будет отображаться в ландшафте, некоторые данные обрезаются:

ActionBar в ландшафтном режиме

Вы можете заметить, как иконка статуса, и электронная почта были обрезаны из-за новой высоты ActionBar.

В этом случае я хочу сохранить одинаковый размер для портрета и пейзажа, чтобы приложение выглядело отлично. Я не могу уменьшить размер шрифта заголовка панели действий, так как он может содержать другие значки.

Способ ввода этих значков в заголовке панели действий и субтитрах осуществляется с помощью Html.fromHtml

Любые идеи для решения этой проблемы? Я использую библиотеку ActionBarSherlock!

Один, возможно, не слишком красивый подход, может заключаться в переопределении значений высоты по умолчанию для ActionBar в dimens.xml .

Например, значение по умолчанию в портрете:

 <dimen name="abs__action_bar_default_height">48dip</dimen> 

И в пейзаже:

 <dimen name="abs__action_bar_default_height">40dip</dimen> 

Может быть, есть более чистый способ сделать это, но я должен признать, что я слишком мало знаю об элементах ActionBarSherlock для этого.


Edit: Подумайте об этом, возможно, это не сработает, когда родной ActionBar будет использоваться в ICS, так как высота затем решит значение платформы в ?android:attr/actionBarSize . Я бы рекомендовал вам подождать лучшего предложения, например, от самого Джейка.

Второе редактирование: после ответа Джейка кажется, что все, что вам нужно сделать, чтобы заставить его работать с ActionBarSherlock на устройствах ICS и pre-ICS, добавляет следующее в тему вашего приложения:

 <item name="actionBarSize">@dimen/some_value</item> <item name="android:actionBarSize">@dimen/some_value</item> 

Затем вы можете добавить фактические значения в соответствующие портреты портрета / земельного ресурса.

Третье редактирование [thanks alvarolb ]: XML Пример для стиля:

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme.Styled" parent="Theme.Sherlock.Light.DarkActionBar"> <item name="actionBarSize">48dip</item> <item name="android:actionBarSize">48dip</item> </style> </resources> 

И в соответствующей деятельности установите этот новый стиль

 android:theme="@style/Theme.Styled" 

И … это работает!