【发布时间】:2014-08-01 00:11:18
【问题描述】:
我有一个 attrs.xml 文件如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="butBackColor" format="reference|color" />
</resources>
Styles.xml 包含:
<style name="GreyButtonTheme" parent="android:style/Widget.Button">
<item name="butBackColor">#3D3D3D</item>
</style>
我有 custom_button.xml,其中包含一个可绘制的选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
...
<item android:left="5dp" android:right="5dp" android:top="5dp" android:bottom="5dp">
<shape>
<solid android:color="@color/butGreyBack" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
最后,我有一个布局,其中包含一个按钮,我想使用我的样式:
上面的代码 sn-ps 对我来说很好 - 但是当我改变时:
<solid android:color="@color/butGreyBack" />
到:
<solid android:color="?butBackColor" />
..然后我得到一个“错误膨胀类”异常。为什么 custom_button.xml 选择器失败?我需要做什么才能使 ?butBackColor 属性起作用?
我以这种方式实现它的原因是我想为不同的按钮集使用不同的样式(颜色)。
以下项目可能对需要文件浏览器对话框的人有用:
【问题讨论】: