我正在编写自定义 Layout 对象,我想强制开发人员指定特定的XML属性。我的意思是,对于所有View
个对象,需要layout_width
和layout_height
属性。
从我做的研究中可以看出,似乎有一个名为getLayoutDimension(int, String)的自定义TypedArray
方法通过期望维度来处理此强制执行,并将给定字符串作为一部分提供如果该维度无效,则会显示错误消息。理想情况下,我也可以做其他类型的事情,比如枚举。 Android SDK中是否存在此功能?
答案 0 :(得分:3)
之前我已经完成了这个,我在自定义布局的ctor中实现了它。我会查询一些东西,如果它不可用则抛出一个RuntimeException。
final TypedArray attributeArray = context.obtainStyledAttributes(attrs, R.styleable.styledTextView);
final String typeface = (attributeArray != null)
? attributeArray.getString(R.styleable.styledTextView_font)
: null;
if(typeface == null)
throw new RuntimeException("must provide foo:typeface attribute for this view.");
这对我们需要完成的工作起作用。