2010-07-15 123 views
33

有沒有什麼辦法讓來自多個其他樣式的樣式繼承,而不是僅僅侷限於:風格的多重繼承

<style name="WidgetTextBase"> 
    <item name="android:typeface">serif</item> 
    <item name="android:textSize">12dip</item> 
    <item name="android:gravity">center</item> 
</style> 

<style name="BOSText" parent="WidgetTextBase"> 
    <item name="android:textColor">#051C43</item> 
</style> 

我想BOSText也繼承:

<style name="WidgetTextHeader"> 
    <item name="android:textStyle">bold</item> 
<style> 
+0

這可能有用嗎? http://stackoverflow.com/questions/4851175/how-to-apply-two-different-styles-to-one-element-in-android/4893402#4893402 – Bruiser 2014-11-28 00:12:29

回答

24

不,樣式不支持多重繼承(至少不會像Android 3.2的的)。

+3

對不起,但你錯了。請參閱鏈接http://developer.android.com/guide/topics/ui/themes.html#DefiningStyles – 2012-03-04 02:33:10

+20

您誤解了這個問題(請參閱我的評論以下答案)。你是對的,你可以構造類似於A> B> C的樣式繼承鏈。但問題是你是否可以做(A,B)> C.即,樣式是從兩個獨立的繼承鏈繼承而來的。 – Jonas 2012-03-05 20:51:51

0

您只能繼承一種風格。但是,您也可以從另一個樣式繼承樣式繼承,等等:

<style name="WidgetTextBase"> 
    <item name="android:typeface">serif</item> 
    <item name="android:textSize">12dip</item> 
    <item name="android:gravity">center</item> 
</style> 

<style name="WidgetTextHeader" parent="WidgetTextBase"> 
    <item name="android:textStyle">bold</item> 
</style> 

<style name="BOSText" parent="WidgetTextHeader"> 
    <item name="android:textColor">#051C43</item> 
</style> 

不能繼承多於一個的風格,但你可以建立一個繼承鏈。