Как применить два разных стиля к одному элементу в Android? - PullRequest
16 голосов
/ 31 января 2011

У меня есть TextView, и я хочу применить стиль, который я использую для всех элементов TextView, а также другой стиль, который я использую только в определенной деятельности. Есть ли возможность сделать это?

Ответы [ 3 ]

21 голосов
/ 04 февраля 2011

Просто небольшая часть информации, которая может добавить к общему значению вопроса - беззастенчиво скопирована из: http://developer.android.com/guide/topics/ui/themes.html#DefiningStyles

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

  <style name="CodeFont.Red">
        <item name="android:textColor">#FF0000</item>
    </style>

Обратите внимание, что в теге отсутствует родительский атрибут, но поскольку атрибут name начинается с имени стиля CodeFont (созданного вами стиля), этот стиль наследует все свойства стиля из этого стиля.Этот стиль затем переопределяет свойство android: textColor, чтобы сделать текст красным.Вы можете ссылаться на этот новый стиль как @ style / CodeFont.Red.

Вы можете продолжать наследовать таким образом столько раз, сколько захотите, объединяя имена с точками.Например, вы можете расширить CodeFont.Red, увеличив его на:

<style name="CodeFont.Red.Big">
    <item name="android:textSize">30sp</item>
</style>
14 голосов
/ 31 января 2011

Стиль под Android может иметь родительский стиль.

Так что просто MyActivityTextView определите GeneralTextView как родительский стиль и измените / добавьте свойства стиля.

Затем вы можете использоватьMyActivityTextView для некоторых представлений и GeneralTextView для других.

Это описано в Определение стилей .

4 голосов
/ 31 января 2011

Вы можете расширить один стиль с другим в вашем style.xml:

<style name="current_weekday_white" parent="current_day_white">
    <item name="android:textColor">#FFABAB</item>
</style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...