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

Как применить два разных стиля к одному элементу в android?

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

4b9b3361

Ответ 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>