У меня есть собственный атрибут в attr.xml
:
<resources>
<attr name="buttonBackgroundColor" format="reference"/>
</resources>
Я создал нарисованный button_background.xml
, который использует этот пользовательский атрибут:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="?buttonBackgroundColor"/>
<corners android:radius="7dp" />
</shape>
и я определил стиль, как показано ниже:
<style name="button_background">
<item name="android:background">@drawable/button_background</item>
<item name="android:elevation">3dp</item>
<item name="android:textStyle">bold</item>
<item name="android:paddingTop">15dp</item>
<item name="android:paddingBottom">15dp</item>
<item name="android:gravity">center</item>
</style>
Я определяю значение этого пользовательского атрибута в следующих дочерних стилях:
<style name="button_background_green" parent="button_background">
<item name="buttonBackgroundColor">@color/Green</item>
</style>
<style name="button_background_blue" parent="button_background">
<item name="buttonBackgroundColor">@color/Blue</item>
</style>
Я использую button_background_green
Stye в TextView
:
<TextView
android:id="@+id/done"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
style="@style/button_background_green"
android:textSize="17sp"
android:text="@string/done" />
Я думаю, что именно так мы реализуем стили, которые имеют много общих свойств, но они не работают. Если для свойства android:background
установить цвет в дочернем стиле, он будет работать отлично. Поэтому я думаю, что по какой-то причине он не может прочитать атрибут buttonBackgroundColor
. Пожалуйста помоги. Я был бы очень признателен.