2010-01-07 9 views
5

Estoy pensando que los estilos más "globales" siempre son anulados por más estilos "locales". Por ejemplo, si redefino todos los botones para tener textSize = 40dip (aplicar ese estilo como un tema para la aplicación) y luego aplicar otro estilo a un botón específico que dice textSize = 10dip, entonces ese botón específico debe obtener 10dip textSize.Estilos, minHeight/maxHeight: No puedo obtener el maxHeight para anular el tema minHeight

Y así es como funciona, generalmente. Pero no cuando se trata de maxHeight. Aquí está el panorama:

En mi styles.xml tengo un estilo donde heredo el botón predeterminado y cambiar TEXTSIZE y minHeight, y luego otro estilo que establece algunos otros valores (pero también hereda de botón), al igual esto:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<style name="Button" parent="@android:style/Widget.Button"> 
    <item name="android:textSize">26dip</item> 
    <item name="android:minHeight">60dip</item> 
</style> 

<style name="ButtonHeader" parent="@android:style/Widget.Button"> 
    <item name="android:textSize">18dip</item> 
    <item name="android:minWidth">70dip</item> 
    <item name="android:maxHeight">10dip</item> 
</style> 
</resources>  

que se aplica el primer estilo como tema de mi actividad que hace que todos los botones más grandes (minHeight = 60dip). Pero tengo un "encabezado" (donde tengo algunos otros botones) que no quiero tener un minHeight de 60dip, y para esos botones quiero usar el ButtonHeader, estableciendo el maxHeight en 10dip.

En mi header.xml que se parece a esto:

<Button style="@style/ButtonHeader" android:text="UPP" android:id="@+id/Header_Button_UPP" android:layout_width="wrap_content" android:layout_height="wrap_content" ></Button> 
<Button style="@style/ButtonHeader" android:text="ALT" android:id="@+id/Header_Button_ALT" android:layout_width="wrap_content" android:layout_height="wrap_content" ></Button> 
<Button style="@style/ButtonHeader" android:text="NAV" android:id="@+id/Header_Button_NAV" android:layout_width="wrap_content" android:layout_height="wrap_content" ></Button> 
<Button style="@style/ButtonHeader" android:text="HIS" android:id="@+id/Header_Button_HIS" android:layout_width="wrap_content" android:layout_height="wrap_content" ></Button> 

Estoy especificamente el estilo del botones, anulando el tema "global". Funciona en algunas partes; textSize para estos botones de encabezado está configurado correctamente en 18dip, pero se ignora maxHeight; estos botones también aumentan en altura a 60dip.

Si, en el estilo de ButtonHeader, establezco android: minHeight = "100dip", los botones en el encabezado aumentarán en tamaño a 100dip, anulando el tema. Pero, como se dijo anteriormente, cuando tengo android: maxHeight en su lugar, no pasa nada.

¿Qué me estoy perdiendo?

+0

Nadie tiene idea? =) – Ted

Respuesta

5

no debe su estilo ButtonHeader reemplazar la propiedad minHeight? Parece que terminas con minHeight = 60dp y maxHeight = 10dp, y minHeight gana. Si configuras explícitamente el minHeight en otra cosa, no deberías tener ese problema.

+0

Bien, necesitaba anular el minheight tal como dijiste =) No sé por qué no lo hice piensa en eso. De alguna manera pensé que anular maxHeight debería hacerlo. Suena un poco razonable. De todos modos, responda OK, puntos recompensados ​​=) – Ted

0

como underestand tiene 2 estilo diferente para Button (Botón - Headerbutton) y en Estilos Headerbutton que establecer minHieght y MaxHeight (altura máxima isworking) y ahora la cara MinHeight con un problema,

implemento su código y encontramos que sus MinHeight no es adecuado para 18dip textsize, por lo que debe o bien disminuir su tamaño tex o aumentar el tamaño MinHeight

que me haga saber, cuál te suceda

+0

¡Oye! Claro, el "maxHeight" en ButtonHeader es demasiado pequeño, lo sé. He intentado todo tipo de valores y nada ayuda. El "tema" anula el estilo ButtonHeader y hace que el botón (en el encabezado) sea más grande, no importa qué maxHeight puse en ButtonHeader = ( – Ted

Cuestiones relacionadas