android:后台在style.xml中不起作用

时间:2018-02-27 11:42:40

标签: android android-layout android-styles

任何人都可以就下面的问题提出建议。

我尝试使用具有drawable(curve_button.xml)文件的自定义按钮样式。

颜色已应用并且看起来不错,但似乎是问题 <item name="android:background">@drawable/curve_button</item>,因为它没有应用。

style.xml

 <style name="CustomButton" parent="Widget.AppCompat.Button.Borderless.Colored">
    <item name="colorButtonNormal">@color/book_appointment</item>
    <item name="android:textColor">@android:color/white</item>
    <item name="android:background">@drawable/curve_button</item>
  </style> 

curve_button.xml

<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
  <item>
    <shape android:shape="rectangle">
      <padding
         android:paddingLeft="34dp"
         android:paddingRight="34.4dp"
         android:paddingTop="16dp"
         android:paddingBottom="16dp"
        />
      <corners android:radius="8dip" />          
    </shape>
  </item>
</selector>

按钮布局

<Button
            android:id="@+id/idBookAppontment"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:text="Book Appointment"
            android:theme="@style/CustomButton"
            android:layout_marginBottom="12dp"
            android:layout_marginTop="6dp"
            android:layout_marginLeft="38dp"
            android:layout_marginRight="37dp"            
            android:inputType="textCapWords"
            android:layout_gravity="bottom"
            local:MvxBind="Typeface StringToFont('Effra_Rg')"
            android:layout_below="@id/providerTabbarHost"
            android:layout_alignParentBottom="true" />

1 个答案:

答案 0 :(得分:1)

使用此

    <?xml version="1.0" encoding="utf-8" ?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
            <shape android:shape="rectangle">
                <padding android:paddingBottom="16dp" android:paddingLeft="34dp" android:paddingRight="34.4dp" android:paddingTop="16dp" />
                <solid android:color="@color/colorAccent" />
                <corners android:radius="8dip" />
            </shape>
        </item>

</selector>

而不是这个

<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
  <item>
    <shape android:shape="rectangle">
      <padding
         android:paddingLeft="34dp"
         android:paddingRight="34.4dp"
         android:paddingTop="16dp"
         android:paddingBottom="16dp"
        />
      <corners android:radius="8dip" />          
    </shape>
  </item>
</selector>