我正在构建一个View
包含两个标准视图的自定义。我为每个包含的视图都有一个默认样式,以及一个允许用户为每个包含的视图指定自定义样式的自定义属性。我可以很好地获取默认样式和自定义样式,并将正确的样式 ID 作为每个包含的 View 构造函数的第三个参数传递。我很难做的是ViewGroup.LayoutParams
根据android:layout_height
和android:layout_width
以适当的样式为这些包含的视图生成一个。
看来我需要使用ViewGroup.LayoutParams(Context, AttributeSet)
构造函数,而AttributeSet 文档说我应该得到一个AttributeSet
via
XmlPullParser parser = resources.getXml(myResouce);
AttributeSet attributes = Xml.asAttributeSet(parser);
...但这会引发 aResources$NotFoundException
并发出frameworks/base/libs/utils/ResourceTypes.cpp
警告Requesting resource %p failed because it is complex
。
因此,我的问题,按特异性降序排列:
- 有没有办法得到一个
XmlPullParser
适用于“复杂”元素的方法? - 是否有其他方法可以获取与元素
AttributeSet
对应的<style>
元素? - 是否有其他方法来构建一个
LayoutParameters
将关注给定样式中的layout_height
和值的方法?layout_width