2010-11-23 10 views

Respuesta

36

No puede. Deberá crear un estilo que combine los dos estilos. (O cree solo un estilo que herede de uno de sus estilos, y agregue los datos adicionales del segundo estilo).

2

Como solución alternativa que puede funcionar en algunas situaciones, se puede envolver su punto de vista objetivo con LinearLayout y asignar un estilo a la disposición de otro a la vista:

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    style="@style/padding"> 

    <TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Bold text with padding" 
    style="@style/text_bold" /> 

</LinearLayout> 
+2

no va a funcionar, aplicar un estilo a un diseño que contiene no afecta a los diseños de interiores – tbkn23

+0

@ tbkn23 que no tiene por qué afectar a la diseños internos. Por ejemplo, si desea cambiar el fondo o agregar un borde, esto se puede hacer en el diseño principal. – peceps

17

Usted puede hacer un estilo que hereda la otra estilo

Por ejemplo:

<style name="Side_Menu_Button" parent="android:attr/buttonStyleSmall"> 
    <item name="android:layout_width">wrap_content</item> 
    <item name="android:layout_height">match_parent</item> 
</style> 

Cuando el side_menu_button heredan de todo el atributo de buttonStyleSmall

+3

si quiere usar estilos propios, escriba "@ styles/mystyle" en lugar de android: attr – Ron

+0

lo siento pero buttonStyleSmall es uno de los estilos android predeterminados – hook38

+0

Personalmente, creo que esta es la mejor respuesta. Tengo un estilo "StandardViewSize", heredado por "StandardButton", heredado por un "LoginButton". Esencialmente, es un árbol completo de estilos, comenzando tan genérico como sea posible y combinándolos en estilos de componentes más específicos para crear una apariencia unificada. –

0

Para el caso particular de un botón y otras vistas que admiten el atributo textAttribute, puede dividir los dos estilos en un estilo específico de botón que se asignaría a attribute: style y un estilo específico de texto que se asignaría a attribute:textAppearance . Sin embargo, tenga en cuenta que los atributos definidos en attribute:style anularán los valores definidos en attribute:textAppearance.

1

Este es un truco que llegué al trabajo:

<style name="TextAppearance.Title.App" parent="TextAppearance.AppCompat.Subhead"> 
    <item name="android:textColor">@color/primary_text_default_material_light</item> 
</style> 

<style name="Custom.TV" parent="TextView.App"> 
    <item name="android:textAppearance">@style/TextAppearance.Other.App</item> 
</style> 
Cuestiones relacionadas