使用自定义选择器使类android.widget.Button膨胀时出错

tal*_*aul 1 xml android xamarin

我试图在android视图中设置一个按钮的样式,但是由于添加了一个自定义选择器,我得到以下错误,是什么导致这个?:

Android.Views.InflateException:二进制XML文件行#1:错误膨胀类android.widget.Button

查看导致悲伤

<Button
    android:text="Next"
    android:id="@+id/nextButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="@style/primary_button_style"
    android:textColor="@color/button_primary"
    android:background="@color/button_primary" />
Run Code Online (Sandbox Code Playgroud)

RES /颜色/ button_primary.xml

<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item
    android:color="@color/accent"
    android:state_enabled="true"
    />
  <item
    android:color="@color/grey"
    android:state_enabled="false"
    />
</selector>
Run Code Online (Sandbox Code Playgroud)

RES /值/ Styles.xml

  <style name="primary_button_style" parent="android:Widget.Button">
    <item name="android:paddingLeft">50px</item>
    <item name="android:paddingRight">50px</item>
    <item name="android:height">50px</item>
    <item name="android:minHeight">50px</item>
    <item name="android:maxHeight">50px</item>
    <item name="android:textAllCaps">true</item>
    <item name="android:textSize">30px</item>
    <item name="android:textStyle">bold</item>
  </style>
Run Code Online (Sandbox Code Playgroud)

我在Visual Studio中使用Xamarin

Bla*_*elt 6

您发布的选择器适用于文本颜色,而不适用于背景.您应该在文件夹中添加一个而不是drawable/使用android:drawableandroid:color

<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item
    android:drawable="@color/accent"
    android:state_enabled="true"
    />
  <item
    android:drawable="@color/grey"
    android:state_enabled="false"
    />
</selector>
Run Code Online (Sandbox Code Playgroud)

顺便说一句.如果你使用相同的颜色作为背景和文本,你将无法看到后者