Применение buttonStyle как темы не работает, но работает, если применяется непосредственно к кнопке - PullRequest
6 голосов
/ 08 декабря 2011

Я следовал руководству по созданию пользовательских кнопок .Если я применяю стиль непосредственно к кнопке, он работает, но если я применяю стиль к теме, используя android:buttonStyle, он не работает.

Пример. Вот XML-стиль с примененным стилем кнопки.: values ​​/ 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>

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

Однако, если применить стиль непосредственно к кнопке, он будет работать:

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

Есть какие-нибудь указатели на то, что я делаю здесь неправильно?

Я проверял это на Android 2.3.3

Источник включен github .

Ответы [ 2 ]

9 голосов
/ 08 декабря 2011

Попробуйте это:

<style name="ButtonText" parent="@android:style/Widget.Button">
6 голосов
/ 30 июля 2015

У меня тоже была эта проблема. Надеюсь, подсказка поможет вам

appcompat v21 + вы должны использовать buttonStyle вместо android:buttonStyle в вашей теме

...