我正在尝试创建一个使用由所选主题定义的属性的选择器。
attrs.xml
<declare-styleable name="ThemeColors">
<attr name="buttonTextColor" format="color" />
</declare-styleable>
selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:color="@android:color/black" />
<item android:color="?attr/buttonTextColor"/>
</selector>
主题:
<style name="Theme.Test" parent="@style/Theme.AppCompat">
<item name="buttonTextColor">@android:color/white</item>
</style>
部分布局文件:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/test"
android:textColor="@drawable/selector" />
清单
<application
...
android:theme="@style/Theme.Test" >
布局文件由setContentView
方法夸大。
现在的问题是textcolor在未压缩状态下为RED
(按下时为黑色)。它似乎无法找到buttonTextColor
并使用默认的RED
(?)
已经尝试将主题设置为Application Context,但没有运气..
提前致谢。