允许在 attrs.xml 中使用“wrap_content”等值



如何在 Android 上的资源文件中允许使用 wrap_contentmatch_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" />
可以使用

<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;
}

相关内容

  • 没有找到相关文章

最新更新