使用Android Studio。我试图使用选择器使按钮中的文本从白色变为深灰色。只有文字,而不是按钮的背景。
这是我的Selector xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/darker_gray" android:state_pressed="true"></item>
<item android:drawable="@android:color/white" android:state_focused="true"></item>
<item android:drawable="@android:color/white" android:state_enabled="true" android:state_focused="false" android:state_pressed="false"></item>
<item android:drawable="@android:color/white" android:state_enabled="false"></item>
</selector>
这是我的Button xml:
<Button
android:layout_width="match_parent"
android:layout_height="45dp"
android:text="Maps"
android:id="@+id/buttonMaps"
android:layout_above="@+id/buttonEmail"
android:layout_marginBottom="5dp"
android:layout_centerHorizontal="true"
android:textColor="@drawable/selector" <------- **SELECTOR NOT WORKING**
android:background="#7f2f74a0" <------- **but it does work if I stick it here**
android:textSize="20sp" />
在预览面板中,我收到一条渲染错误消息,内容为&#34;无法为/ Users配置解析器... src / main / res / drawable / selector.xml&#34;
我已尝试过SO的一些解决方案,但没有任何工作,包括清理和重建项目。有趣的是,我很好奇并将选择器应用到按钮的背景并且它可以工作 - 按钮背景默认为白色并在按下时变为灰色。
比我更聪明的人有解决方案吗?
谢谢!
答案 0 :(得分:4)
将文本选择器放在资源文件夹下,而不是drawable。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@android:color/darker_gray" android:state_pressed="true"></item>
<item android:color="@android:color/white" android:state_focused="true"></item>
<item android:color="@android:color/white" android:state_enabled="true" android:state_focused="false" android:state_pressed="false"></item>
<item android:color="@android:color/white" android:state_enabled="false"></item>
</selector>
使用它,
<Button
android:layout_width="match_parent"
android:layout_height="45dp"
android:text="Maps"
android:id="@+id/buttonMaps"
android:layout_above="@+id/buttonEmail"
android:layout_marginBottom="5dp"
android:layout_centerHorizontal="true"
android:textColor="@color/selector"
android:textSize="20sp" />