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

标签 android xml xamarin

我正在尝试在 android View 中设置按钮样式,但自从添加了自定义选择器后,我收到以下错误,这是什么原因造成的?:

Android.Views.InflateException: Binary XML file line #1: Error inflating class 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/color/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/values/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

最佳答案

您发布的选择器适用于文本颜色,不适用于背景。您应该在文件夹 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>

顺便说一句。如果您对背景和文本使用相同的颜色,您将看不到后者

关于android - 使用自定义选择器膨胀类 android.widget.Button 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34653264/

相关文章:

python - 从字符串中提取特定值

c# - 无法创建 xamarin.ios native 控件包装器

Android 如何创建选项矩阵?

android - 如何获取 XML 中导航栏的大小?

java - 如何使用 JNI android 获取应用程序构建配置(调试或发布)?

c# - 关于 c# .net 中的 xml 序列化

android - 如何在 Toast 上设置 onClickListener?

xml - ColdFusion XML 特殊/外来字符丢失

android - 在 Android 上构建 Xamarin.Forms 应用程序时识别大量 XA0106 警告的罪魁祸首

c# - 如何在 monotouch Xamarin 中裁剪图像