Ответ 1
Используйте атрибут height
, actionBarSize
, если для чего-то еще.
<item name="android:height">@dimen/bar_height</item>
Explanantion:
Из исходного кода ActionBar:
mContentHeight = a.getLayoutDimension(R.styleable.ActionBar_height, 0);
Мы видим, что R.styleable.ActionBar_height
используется для высоты. Stylable
Имена свойств генерируются как component_attribute
(Если вы когда-либо использовали пользовательское представление Stylable
, вы бы это заметили). Следовательно, Actionbar
- это имя компонента, а height
- это имя используемого атрибута. Поскольку это системный атрибут, поэтому он определен в пространстве имен android
.
Обновление до 2014:
Библиотека AppCompat теперь предоставляется для поддержки последней версии ActionBar (или панели инструментов) и поддержки тем для старых версий Android. Ниже приведен пример такой темы приложения /res/values/styles.xml
:
<resources>
<!-- Application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Main theme colors -->
<!-- your app branding color for the app bar -->
<item name="colorPrimary">@color/primary</item>
<!-- darker variant for the status bar and contextual app bars -->
<item name="colorPrimaryDark">@color/primary_dark</item>
<!-- theme UI controls like checkboxes and text fields -->
<!-- native widgets will now be "tinted" with accent color -->
<item name="colorAccent">@color/accent</item>
<!--Action bar style-->
<item name="android:actionBarStyle">@style/AppTheme.ActionBar</item>
<item name="actionBarStyle">@style/AppTheme.ActionBar</item>
</style>
<style name="AppTheme.ActionBar" parent="Widget.AppCompat.Light.ActionBar">
<item name="android:titleTextStyle">@style/AppTheme.ActionBar.TitleText</item>
<item name="titleTextStyle">@style/AppTheme.ActionBar.TitleText</item>
<item name="android:height">@dimen/bar_height</item>
<item name="height">@dimen/bar_height</item>
</style>
<style name="AppTheme.ActionBar.TitleText" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textSize">@dimen/bar_text_size</item>
<item name="android:textColor">@color/bar_text_color</item>
</style>
</resources>
Этот стиль теперь можно установить как тему приложения, используя android:theme="@style/AppTheme"
в теге <application>
AndroidManifest.xml
.
Обратите внимание на использование повторяющихся записей
<item name="android:actionBarStyle">
<item name="actionBarStyle">
Те, которые не имеют пространства имен android
, существуют для поддержки как библиотеки совместимости, так и собственных атрибутов. Некоторые из этих атрибутов не существовали в пространстве имен android в старых версиях и принадлежат к библиотеке поддержки.
В некоторых других местах вам нужно использовать пространство имен app
(xmlns:app="http://schemas.android.com/apk/res-auto"
), например app:showAsAction="always"
в XML файлах меню.
Обновить апрель 2015
Библиотека AppCompat v22 также доступна. Прочтите статью, чтобы узнать, что нового.