我试图让我的按钮显示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" />
谢谢。
答案 0 :(得分:1)
按钮实际上表现得像键盘按钮,即它们只有两种状态,即正常和按下状态。
如果你想记住/显示选择状态,我有一个想法...,尝试使用'无线电组'(如果你只想从一个组中选择一个)或使用切换按钮/开关(每个记住他们的状态为ON或OFF)并创建他们的自定义UI,使他们看起来像你想要的按钮。