Android按钮背景状态具有意外行为

时间:2014-04-15 21:33:51

标签: android

我有一个Button带有一个定义状态和背景的背景资源

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@color/white" android:state_pressed="true"  />
    <item android:drawable="@color/gray" android:state_pressed="false"  />

    <item android:drawable="@color/white" android:state_selected="true"  />
    <item android:drawable="@color/gray" android:state_selected="false"  />

</selector>

我也试过

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@color/white" android:state_pressed="true" android:state_selected="true" />
    <item android:drawable="@color/gray" android:state_pressed="false" android:state_selected="false"  />

</selector>

按下它确实会改变颜色,但是当我应用btn.setSelected(true);时没有任何反应

任何想法?

2 个答案:

答案 0 :(得分:0)

点击按钮,点击btn.performClick();。这可能有效:

void pressButton(Button btn, boolean pressed) {
    if (pressed != btn.isPressed()) {
        btn.performClick();
    }
}

答案 1 :(得分:0)

好的,我明白了,

对于将要遇到这种情况的未来人来说,这已经解决了它

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@color/white" android:state_pressed="true"  />
    <item android:drawable="@color/white" android:state_selected="true"  />
    <item android:drawable="@color/tab_gray" />

</selector>