为按钮和形状

时间:2017-11-12 04:24:14

标签: android

我尝试使用以下XML代码为我的按钮创建一个选择器...

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:constantSize="true">
    <item android:drawable="@drawable/rectangular_transparent" android:state_enabled="true"></item>
    <item android:drawable="@drawable/rectangular_grey" android:state_pressed="true"></item>
</selector>

这是我定义的矩形灰色形状......

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/grey"/>
    <stroke android:color="@android:color/transparent"/>
    <corners android:radius="1dp"/>
</shape>

这是我定义的矩形透明形状......

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@android:color/transparent"/>
    <stroke android:color="@color/grey" android:width="@dimen/_1sdp"/>
    <corners android:radius="1dp"/>
</shape>

当我将它运行到我的设备中时,它只显示透明按钮但是当我按下它时它不会改变颜色...

当我尝试使用其他颜色而不是透明时,同样的方法也有效,请帮助......

2 个答案:

答案 0 :(得分:0)

您需要以正确的方式使用选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:constantSize="true">
<item android:drawable="@drawable/rectangular_transparent" ></item>
<item android:drawable="@drawable/rectangular_grey" android:state_pressed="true"></item>

<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:constantSize="true">
<item android:drawable="@drawable/rectangular_transparent" android:state_pressed="true"></item>
<item android:drawable="@drawable/rectangular_grey"></item>

答案 1 :(得分:0)

选择器中项目的顺序很重要。它总是选择适用的第一个。所以你应该交换这些项目。

在你的情况下,按钮总是被启用,无论按下状态是什么,所以它总是选择第一个项目。