我正在尝试在 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/