Android: у меня есть только один снимок для каждого свойства при использовании тем?В Android нет ничего похожего на CSS? - PullRequest
5 голосов
/ 20 сентября 2010

Здесь пишут:

Чтобы применить определение стиля в качестве темы, вы должны применить стиль к Деятельности или приложению в манифесте Android.Когда вы это сделаете, каждый View в Activity или приложении будет применять каждое свойство, которое он поддерживает.Например, если вы примените стиль CodeFont из предыдущих примеров к Activity, то все элементы View, которые поддерживают свойства стиля текста, будут применять их.

Поэтому, когда я устанавливаю TextColor в Red, сделайтеВСЕ элементы с текстом изменяются на красный ??Есть ли мощный спецификатор, как в таблицах стилей CSS?Я просто вижу концепцию стилей (style="@style/CodeFont") практически осуществимой.

Ответы [ 2 ]

3 голосов
/ 05 ноября 2010

В ответ на ваши комментарии вы можете найти то, что ищете с помощью свойства textAppearance.

Откройте файл themes.xml здесь:
https://android.googlesource.com/platform/frameworks/base/+/froyo-release/core/res/res/values/themes.xml

Если вы делаете поиск для textAppearance, вы замечаете различные записи, такие как:

<style name="Theme">
    <item name="textAppearanceButton">@android:style/TextAppearance.Widget.Button</item>
    ...
    <item name="panelTextAppearance">?android:attr/textAppearanceInverse</item>
    ...

Это позволяет в некоторой степени стилизовать компоненты во всем приложении, как показано в примере с Maragues.

Таким образом, хотя невозможно полностью контролировать стиль всех дочерних элементов, например, просмотра списка, прокрутки и т. Д., Существует ограниченная поддержка для управления стилями некоторых компонентов на основе текста, таких как TextView и или Button.

2 голосов
/ 20 сентября 2010

Если вы читаете чуть ниже цитируемого вами текста:

Чтобы установить тему для всех действий вашего приложения, откройте файл AndroidManifest.xml и отредактируйте тег, включив в него android: themeатрибут с именем стиля

Если вы хотите, чтобы тема применялась только к одному действию в вашем приложении, вместо этого добавьте к тегу атрибут android: theme.

И немного позже, он описывает, как наследовать и переопределять свойства, как CSS:

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

<style name="CustomTextView" parent="@android:style/Widget.TextView">
    <item name="android:background">@drawable/custom_background</item>
</style>

Затем, чтобы выйти из CustomTextView

<style name="CustomTextView.RedText">
   <item name="android:textColor">@color/red</item> 
</style>

После разработки XMLмакет, вы можете унаследовать тему и переопределить свойства

<TextView
    android:id="@+id/example"

    style="@style/CustomTextView.RedText"

    android:textColor="@color/green" />

Я думаю, вам следует снова прочитать страницу, на которую вы сами ссылались, это хорошо объяснено:)

...