如何在Android的wrap_content
资源文件中使用match_parent
或attrs.xml
之类的值?
我的attrs.xml
。
<declare-styleable name="BarView">
<attr name="foo_dimen" format="dimension" />
</declare-styleable>
我希望像这样使用foo_dimen
属性:
<BarView
…
app:foo_dimen="wrap_content" />
<BarView
…
app:foo_dimen="42dp" />
答案 0 :(得分:0)
可以使用<enum />
:
<declare-styleable name="BarView">
<attr name="foo_dimen" format="dimension">
<enum name="wrap_content" value="-1" />
</attr>
</declare-styleable>
然后您可以使用Java获取值:
TypedArray arr = context.getTheme().obtainStyledAttributes(R.styleable.BarView, /* defStyleAttr */ 0, /* defStyleRes */ 0);
switch ((int)(arr.getDimension(R.styleable.BarView_foo_dimen, -255))) {
case -1: // wrap_content
// …
break;
case -255: // not specified
// …
break;
default: // Specified valid dimension
int pixels = arr.getDimensionPixelSize(R.styleable.BarView_foo_dimen, -1);
…
break;
}