为澄清起见,项目的名称属性应与 attrs.xml 的可声明样式名称属性 +“:” + 属性名称中的相同。
例如:
attrs.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="com.chuck.norris">
<attr name="actionBarTextColor" format="color"/>
</declare-styleable>
</resources>
样式.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="myNewStyle">
<item name="android:textColor">#FFFF0000</item>
<item name="com.chuck.norris:actionBarTextColor">#ffff0000</item>
</style>
</resources>
然后,您可以使用 manifest.xml 文件中的主题将此样式应用于所有活动。任何存在想要使用“actionBarTextColor”属性的自定义视图的地方,您都可以使用 Java 代码:
TypedArray typedArray = context.obtainStyledAttributes(attrSet, R.styleable.com_chuck_norris);
COLOR_ACTION_BAR_TEXT = typedArray.getColor(R.styleable.com_chuck_norris_actionBarTextColor, 0xff0000ff);
typedArray.recycle();
我不知道为什么你不能像上面问的那样在你的 style.xml 文件中定义你的模式,但这似乎是 style.xml 的一个限制。