如何设置android按钮的state_selected

时间:2014-05-12 09:46:04

标签: android xml button selector state

我试图让我的按钮显示3个状态,正常,按下和选中。正常和按下显示正常,但所选状态不显示。我尝试过使用state_focused state_activated和state_active以及状态组合设置为true和false但没有成功。

按钮可以显示所选状态吗?如果是的话,我做错了什么?

minSdkVersion = 11 targetSdkVersion = 19

这是选择器的xml,red_button.xml

<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true">
        <shape>
            <solid android:color="#000000" />
            <stroke
                android:width="1dp"
                android:color="#992f2f" />
            <corners android:radius="6dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
    <item android:state_pressed="true">
        <shape>
            <solid android:color="#ef4444" />
            <stroke
                android:width="1dp"
                android:color="#992f2f" />
            <corners android:radius="6dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
    <item>
        <shape>
            <gradient
                android:startColor="#ef4444"
                android:endColor="#992f2f"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="#992f2f" />
            <corners android:radius="6dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>

这里是按钮的xml,它包含在LinearLayout中并作为片段加载到mainActivity中

<Button
            android:background="@drawable/red_button"
            android:id="@+id/scene_1_btn"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:maxWidth="150dp"
            android:minWidth="100dp"
            android:text="@string/scene_1_btn_text"
            android:onClick="sendMessage"
            style="@style/button_text" />

谢谢。

1 个答案:

答案 0 :(得分:1)

按钮实际上表现得像键盘按钮,即它们只有两种状态,即正常和按下状态。

如果你想记住/显示选择状态,我有一个想法...,尝试使用'无线电组'(如果你只想从一个组中选择一个)或使用切换按钮/开关(每个记住他们的状态为ON或OFF)并创建他们的自定义UI,使他们看起来像你想要的按钮。