2010-07-15 14 views
33

¿Hay alguna manera de hacer una hereda el estilo de varios otros estilos, en lugar de sólo estarán limitadas a:estilos herencia múltiple

<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> 

me gustaría BOSText para heredar también de:

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

¿Esto puede ser útil? http://stackoverflow.com/questions/4851175/how-to-apply-two-different-styles-to-one-element-in-android/4893402#4893402 – Bruiser

Respuesta

24

No, estilos no son compatibles con la herencia múltiple (al menos no como de Android 3.2).

+3

Lo siento, pero estás equivocado. Ver el enlace http://developer.android.com/guide/topics/ui/themes.html#DefiningStyles –

+20

Has entendido mal la pregunta (mira mi comentario sobre tu respuesta a continuación). Tiene razón en que puede construir cadenas de herencia de estilos como A> B> C. Sin embargo, la cuestión era si podía hacer (A, B)> C. Es decir, un estilo hereda de dos cadenas de herencia independientes. – Jonas

-1

hay un atributo primario en la etiqueta de estilo que se debe dejar que se hereda de otros estilos ...

es decir

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

http://developer.android.com/guide/topics/ui/themes.html

+8

El problema es que me gustaría tener múltiples atributos principales . – NPike

0

Solo puede heredar un estilo. Sin embargo, también puede hacer que la hereda heredado el estilo de otro estilo, y así sucesivamente:

<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> 

No se puede heredar más de un estilo, pero se puede establecer una cadena de herencia.