У меня есть TextView, и я хочу применить стиль, который я использую для всех элементов TextView, а также еще один стиль, который я использую только для определенного действия. Есть ли возможность сделать это?
Как применить два разных стиля к одному элементу в android?
Ответ 1
Стиль под Android может иметь родительский стиль.
Итак, просто MyActivityTextView
define GeneralTextView
как родительский стиль и измените/добавьте свойства стиля.
Затем вы можете использовать MyActivityTextView
для некоторых видов и GeneralTextView
для остальных.
Это описано в Определение стилей.
Ответ 2
Просто небольшая часть информации, которая может добавить к общей стоимости вопроса - бесстыдно скопирована из: 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>
Ответ 3
Вы можете распространять один стиль на другой в вашем стиле .xml:
<style name="current_weekday_white" parent="current_day_white">
<item name="android:textColor">#FFABAB</item>
</style>