我正在努力让它发挥作用。我有一个自定义控件,我已经进入了一个从我的主应用程序项目引用的库项目。在图书馆项目中,我定义了一些可定制的attrs(忽略最后一个中的拼写错误,修复: - )):
<declare-styleable name="PinLockKeyPad">
<attr name="keypadKeyBackground" format="reference" />
<attr name="cancelKeyBackground" format="reference" />
<attr name="keypadButtonTextSize" format="dimension" />
<attr name="cancelButtonTextSize" format="dimension" />
<attr name="backspaceButtonImageResouce" format="reference" />
</declare-styleable>
这些可设置样式的attrs在java代码中没有被引用,但是在库的styles.xml文件中使用,如下所示:
<style name="KeypadButton" parent="MatchBoth">
<item name="android:background">?keypadKeyBackground</item>
<item name="android:textColor">@color/white</item>
<item name="android:textSize">?keypadButtonTextSize</item>
<item name="android:textStyle">bold</item>
<item name="android:typeface">sans</item>
<item name="android:layout_weight">1</item>
</style>
在我的主应用程序中,我在styles.xml中完成了以下操作:
<style name="Theme.App" parent="@style/Theme.Sherlock.Light.DarkActionBar.ForceOverflow">
<item name="keypadKeyBackground">@drawable/keypad_key</item>
<item name="cancelKeyBackground">@drawable/keypad_key</item>
<item name="pinHintTextColor">@color/white</item>
<item name="pinInputBackground">@color/white</item>
<item name="keypadButtonTextSize">18sp</item>
<item name="cancelButtonTextSize">18sp</item>
<item name="backspaceButtonImageResouce">@drawable/ic_delete</item>
</style>
并已将Theme.App设置为我的应用程序主题。但是,当我试图给引用KeypadButton样式的类充气时,由于没有定义这些attrs,我正在崩溃。我错过了什么?
旁注:这可能与我的主应用程序中有多个库有关。我有另一个应用程序执行这个完全相同的事情,并没有崩溃,但它只使用一个库(使用这些样式的库)。