Я имею дело с определениями цвета Android L для определения строк ListView. У меня есть тема, в которой есть:
<item name="colorAccent">@color/color_blue_dark</item>
и в моей строке я определил еще один:
<style name="DefaultRow">
<item name="colorAccent">@color/color_sand</item>
<item name="android:background">?android:attr/activatedBackgroundIndicator</item>
</style>
Предполагая, что значение colorAccent будет переопределено. но это не так, если я сделаю в своей строке:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
...
style="@style/DefaultRow"/>
Но это работает, если я делаю:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
...
android:theme="@style/DefaultRow"/>
Какая разница? определяется ли colorAccent
при применении темы и не переопределяется позже? Как решить эту проблему, чтобы иметь ретросовместимость?
android:theme
применяется как к самому представлению, так и к его потомкам. Внутри он создаетContextThemeWrapper
и расширяет представление и его потомков в соответствии с этим контекстом. - person alanv   schedule 07.08.2015