使用自定义选择器

时间:2016-01-07 10:51:14

标签: android xml 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" />

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>

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>

我在Visual Studio中使用Xamarin

2 个答案:

答案 0 :(得分:6)

您发布的选择器适用于文本颜色,而不适用于背景。您应该在drawable/文件夹中添加一个并使用android:drawable代替android: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>

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

答案 1 :(得分:3)

致电 drawable instead of color

您正在

  

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

问题在这里

 android:background="@color/button_primary"

您可以创建drawable文件夹并致电

android:background="@drawable/button_primary"