按钮样式在Android 5中运行,但不在Android 4中运行

bar*_*arq 9 android styles android-4.1-jelly-bean android-5.1.1-lollipop

我有一个蓝色背景的按钮样式,在API 22中工作正常,但相同的按钮显示为深灰色而没有在Android 4中应用的样式.这是我的风格:

<style name="MyApp.Plain" parent="Theme.AppCompat.NoActionBar">
      <item name="android:windowBackground">@drawable/background</item>
      <item name="android:buttonStyle">@style/MyApp.Widget.Button</item>
</style>


  <style name="MyApp.Widget.Button" parent="@android:style/Widget.Button">
      <item name="android:background">@drawable/btn_blue</item>
      <item name="android:focusable">true</item>
      <item name="android:clickable">true</item>
      <item name="android:textStyle">bold</item>
      <item name="android:textSize">14sp</item>
      <item name="android:textColor">#fff</item>
      <item name="android:gravity">center_vertical|center_horizontal</item>
   </style>
Run Code Online (Sandbox Code Playgroud)

我的btn_blue.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/btn_disabled" android:state_enabled="false"/>
    <item android:drawable="@drawable/btn_pressed" android:state_enabled="true" android:state_pressed="true"/>
    <item android:drawable="@drawable/btn_normal_blue" android:state_enabled="true"/>

</selector>
Run Code Online (Sandbox Code Playgroud)

和btn_normal_blue.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <gradient
        android:angle="90"
        android:endColor="#368ac6"
        android:startColor="#0e58a4" />

    <corners android:radius="20dp" />

</shape>
Run Code Online (Sandbox Code Playgroud)

可能是这种行为的原因,我该如何解决这个问题?

编辑:这不支持v7:22.2.0,但适用于v7:21.0.3.除了依赖项之外,我没有更改任何内容,并将AppCompatActivity更改为ActionBarActivity.

可能这是一个Android错误.

Mic*_*iel 12

尝试buttonStyle代替android:buttonStyle,因为这是AppLat属性pre Lollipop,所以它应该没有android前缀.