2011-12-08 10 views
6

Estaba siguiendo un tutorial en creating custom buttons. Si aplico el estilo al botón directamente, funciona, pero si aplico el estilo al tema usando android:buttonStyle, no funciona.Aplicar buttonStyle como tema no funciona, pero si se aplica al botón directamente

Un ejemplo - Aquí está el xml estilo con el estilo de botón aplicada: valores/styles.xml

<resources> 
    <style name="MyTheme" parent="android:Theme.Light"> 
     <!-- the button gets styled but is no longer clickable 
      if i do it like this --> 
     <item name="android:buttonStyle">@style/ButtonText</item> 
    </style> 

    <style name="ButtonText"> 
     <item name="android:layout_width">fill_parent</item> 
     <item name="android:layout_height">wrap_content</item> 
     <item name="android:textColor">#ffffff</item> 
     <item name="android:background">@drawable/ruddy_orange_button</item> 
    </style> 
</resources> 

estirable/ruddy_orange_button.xml:

<item android:state_pressed="true"> 
     <shape> 
      <solid android:color="#70c656" /> 
      <stroke android:width="1dp" android:color="#53933f" /> 
      <corners android:radius="3dp" /> 
      <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" /> 
     </shape> 
    </item> 
    <item> 
     <shape> 
      <gradient android:angle="270" android:endColor="#fd4d4d" android:startColor="#f24b4b" /> 
      <stroke android:width="1dp" android:color="#f04a4a" /> 
      <corners android:radius="4dp" /> 
      <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" /> 
     </shape> 
    </item> 
</selector> 

Sin embargo si aplico el estilo directamente al botón funciona:

<Button 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    style="@style/ButtonText" 
    android:text="hello there" /> 

¿Alguna sugerencia sobre lo que estoy haciendo mal aquí?

He probado esto en Android 2.3.3

Fuente está en github.

Respuesta

9

Prueba esto:

<style name="ButtonText" parent="@android:style/Widget.Button"> 
6

También tuve esta problem.hope la punta le ayudará a

v21 + appcompat se debe utilizar en lugar de buttonStyleandroid:buttonStyle en su tema

Cuestiones relacionadas