изменение какого-либо дефолтного стиля для виджета

Интерфейс, диалоги, темы, стили, меню
Ответить
slbel
Сообщения: 36
Зарегистрирован: 31 мар 2015, 13:25

изменение какого-либо дефолтного стиля для виджета

Сообщение slbel » 09 июн 2015, 11:15

Доброго всем времени суток!

Разбираюсь со стилями. Тема довольно дремучая и нигде толком не описана.
Хочу для тестирования (в основном с целью лучшего понимания темы) изменить настройки какого-либо дефолтного стиля, например, возьмем стиль

Код: Выделить всё

    <style name="TextAppearance.Widget.TextView.SpinnerItem">
        <item name="android:textColor">@android:color/primary_text_light_disable_only</item>
    </style>
Попробуем изменить цвет текста элемента и сохранить его под этим же именем, с тем, чтобы в layout файлах его явно не указывать.

Вот как я это делаю (в styles.xml):

Код: Выделить всё

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="android:Theme">
        <!-- Customize your theme here. -->
    <!-- redefining android:Widget.TextView.SpinnerItem for test change default color  -->
        <item name="@style/android:Widget.TextView.SpinnerItem">@style/MyCustomSpinnerItem</item>
    </style>

    <style name="MyCustomSpinnerItem" parent="android:Widget.TextView.SpinnerItem">
        <item name="android:textAppearance">@style/SpinnerItemTextColor</item>
    </style>

    <style name="SpinnerItemTextColor">
        <item name="android:textColor">@color/green_color</item>
    </style>

    <color name="green_color">#00FF00</color>

</resources>
Но что то пока не получается, цвет не меняется.
Можно ли вообще переопределить существующий стиль? Если да, то как это сделать?

PS: программа заточена на минимальный SDK=7, поэтому используется обычный Theme, без всяких Theme.Holo и Theme.Metal.

Ответить