ContextThemeWrapper не работает для атрибутов, определенных в styles

#android #android-layout #android-theme #android-styles

#Android #android-layout #android-тема #android-styles

Вопрос:

ContextThemeWrapper отлично подходит для программной настройки новой темы для раздувания представлений.

Это отлично работает для чего-то вроде:

 <TextView
  android:textColor="?attr/textColorPrimary"
  />
 

Но, что удивительно, не работает для:

 <TextView
  style="@style/Label"
  />
 
 <style name="Label">
  <item name="android:textColor">?attr/textColorPrimary</item>
</style>
 

Есть ли способ разрешить стилю считывать правильные значения атрибутов из ContextThemeWrapper, используемого для расширения представления?

Ответ №1:

В этом случае вы должны применить наложение темы, а не стиль:

         <TextView
            android:theme="@style/Label"
            ../>