我正在编写自己的自定义视图,其中包含TextView和EditText。我想让用户分别为每个控件设置文本样式,如下所示:
<declare-styleable name="InputRow">
<attr name="descriptionTextStyle" format="string" />
<attr name="valueTextStyle" format="string" />
</declare-styleable>
我原本以为这样可以行得通,在XML中我可以这样说:
app:descriptionTextStyle="bold"
app:valueTextStyle="italic"
然而,当我尝试从类型数组中读取时,问题就出现了。我可以获取字符串:
if(typedArray.hasValue(R.styleable.InputRow_descriptionTextStyle)) {
setDescriptionTextStyle(typedArray.getString(R.styleable.InputRow_descriptionTextStyle));
}
但是当我想调用
descriptionTextView.setTypeface(Typeface tf, int style)
时,我需要第二个参数的整数值,而我没有。
我不能将样式更改为int格式,因为那么="bold"
将无效,所以我不知道如何获取文本样式。
<SDK>/platforms/android-XX/data/res/values/attrs.xml
并找到textStyle
。 - pskink<declare-styleable>
中添加<attr name="android:textStyle" />
,但无法使用不同名称/别名的两个不同的android:textStyle
。 - pskinkandroid:textStyle
,就像这样。 - pskink