У меня есть TextView, и я хочу применить стиль, который я использую для всех элементов TextView, а также еще один стиль, который я использую только для определенного действия. Есть ли возможность сделать это?Как применить два разных стиля к одному элементу в android?
ответ
Стиль под Android может иметь родительский стиль.
Таким образом, только MyActivityTextView
определите GeneralTextView
как родительский стиль и измените/добавьте свойства стиля.
Тогда вы можете использовать MyActivityTextView
для некоторых видов и GeneralTextView
для остальных.
Это описано в Defining Styles.
Вы можете продлить один стиль с другим в вашем style.xml:
<style name="current_weekday_white" parent="current_day_white">
<item name="android:textColor">#FFABAB</item>
</style>
эй, я пробовал это с текстовым видом, но работает только первый стиль, а не расширенный. любые подсказки? –
Просто маленький кусочек информации, которая может добавить к общей стоимости вопроса - бессовестно скопированный с: 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>
Мне интересно, что, хотя я ранее посещал и изучал/снимал эту страницу, я не знал этого интересного и полезного лакомого кусочка. Спасибо @Bruiser. – DavidDraughn
- 1. Как применить два разных свойства стиля к одному и тому же элементу в разных местах?
- 2. Применить стили только к одному элементу
- 3. Как применить несколько эффектов к одному элементу
- 4. Как применить jquery-анимацию к одному элементу?
- 5. XML-представление: как привязать два разных пути к одному элементу?
- 6. Применить :: - webkit-scrollbar к одному конкретному элементу
- 7. Как применить несколько стилей XAML к одному элементу?
- 8. Примените два разных стиля шрифта к TextView
- 9. Может ли быть два разных стиля, примененные к одному компоненту
- 10. Применить несколько изменений атрибутов к одному элементу
- 11. Два события щелчка, привязанные к одному элементу
- 12. Как применить несколько стилей к одному элементу в ckeditor?
- 13. Как применить функцию к одному элементу в гетерогенном списке?
- 14. Два разных стиля FancyBox
- 15. Как применить несколько CSS радиальных градиентов к одному элементу
- 16. Как я могу применить несколько объявлений преобразования к одному элементу?
- 17. Как применить свойство только к одному элементу UserControl
- 18. Объединить два разных файла sql к одному
- 19. Как применить два стиля в одном столбце
- 20. Применение DataTemplateSelector к одному элементу
- 21. Подключите два разных кадра данных к одному
- 22. Angular2: как применить два или более валидаторов к одному и тому же элементу управления?
- 23. Применить стиль к одному дочернему элементу пользовательской панели?
- 24. Применить функцию jQuery к одному элементу и * NOT * его потомкам
- 25. XSD - как добавить два «реф» к одному элементу
- 26. Как применить 4 разных подсказки к одному изображению
- 27. как применить два разных стиля к различным компонентам nav в bootstrap/uikit, используя меньше
- 28. Применение loadMask() к одному элементу в extjs?
- 29. Присвоить два действия к одному элементу в ember.js
- 30. Как применить стиль к настраиваемому элементу управления
О, я вижу. Это здорово, спасибо. Еще один вопрос: может ли стиль child также перезаписывать родительские свойства? – Bruiser
Да, он может переопределять родительские свойства. –