2010-07-15 97 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> 

不能继承多于一个的风格,但你可以建立一个继承链。