我正在構建包含兩個標準視圖的自定義View
。我對每個包含的View都有一個默認樣式,並且有一個自定義屬性,可以讓用戶爲每個包含的View指定一個自定義樣式。我可以得到默認的與自定義樣式很好,並傳遞正確的樣式ID作爲每個包含View的構造函數的第三個參數。我正在很難做的是根據android:layout_height
和android:layout_width
以適當的風格生成ViewGroup.LayoutParams
這些包含Views。如何從樣式資源中自定義查看android:layout_height查看
它似乎像我需要使用ViewGroup.LayoutParams(Context, AttributeSet)
構造函數和AttributeSet docs說我應該得到一個通過AttributeSet
XmlPullParser parser = resources.getXml(myResouce);
AttributeSet attributes = Xml.asAttributeSet(parser);
...但是,拋出一個Resources$NotFoundException
與frameworks/base/libs/utils/ResourceTypes.cpp
警告那Requesting resource %p failed because it is complex
。
因此,我的問題,在降低特異性的順序:
- 有沒有辦法得到一個
XmlPullParser
以「複雜」的元素的作品? - 有沒有其他方法可以得到
AttributeSet
對應於<style>
元素? - 有沒有其他的方法來構造一個
LayoutParameters
會注意給定風格的layout_height
和layout_width
值?