Подтвердить что ты не робот

Как изменить размер панели действий

Я хотел бы изменить размер панели действий. Я пробовал следующую кодировку.

<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/CustomActionBar</item>
</style>
<style name="CustomActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <!--  <item name="android:background">@drawable/action_bar_style</item> -->
    <item name="android:actionBarSize">15dp</item>
    <item name="android:background">@drawable/header_bar</item>
</style>

Но размер панели действий не изменился. Есть ли другой способ? Я использую уровень api 11.

Спасибо.

4b9b3361

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

Ответ 2

Просто поставьте элемент actionBarSize в стиле MyTheme, например:

<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarSize">15dp</item>
    <item name="actionBarSize">15dp</item>
    ...
</style>

Объяснение:

В R.styleable мы видим, что R.styleable.Theme_actionBarSize является атрибутом стиля, определенным на уровне темы.

Кроме того, из исходного кода res/values/styles.xml мы видим, как actionBarSize используется для установки height:

<style name="Widget.ActionBar">
    ...
    <item name="android:height">?android:attr/actionBarSize</item>

Ответ 3

Обязательно добавьте S.D. код в styles.xml, а затем добавьте

android:theme="@style/thin_ab"

в элемент <application> основного манифеста. (Я ноб, и мне потребовалось около 2 часов, чтобы это выяснить.)

Ответ 4

Добавьте это в собственный стиль стиля XML, который вы ссылаетесь на ваш файл манифеста:

<item name="android:windowTitleSize">58dip</item>

Например, если ваш файл манифеста выглядит примерно так:

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        **android:theme="@style/AppTheme"** >

Ваш стиль темы должен быть как минимум:

<!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">            
        <item name="android:windowTitleSize">54dip</item>
    </style>

Ответ 5

S.D. решение для меня не работает. В моем случае я использовал AppCompat v-21. И я просто добавляю

android:layout_height="@dimen/actionBarSize"
android:minHeight="@dimen/actionBarSize"

в мой файл макета, и он работает.

Ответ 6

Существует два способа изменить размер панели действий. 1. использование файла манифеста.

android:theme="@style/AppTheme1"

2.программно можно использовать

public void onCreate(Bundle savedInstanceState) {
setTheme(android.R.style.Theme);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
}