1

我想自定义我的背景。所以我在选择器中为每个状态设计形状。但第一项执行。

这是我的代码:

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:color="@android:color/black" >
        <shape android:shape="rectangle" >
            <solid android:color="#FFFFFF" />
            <stroke
                android:width="1dp"
                android:color="#000000" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
            <corners android:radius="10dp" />
        </shape>
    </item>
    <item android:state_pressed="true" android:color="@android:color/black" >
        <shape android:shape="rectangle" >
            <solid android:color="#8faefd" />
            <stroke
                android:width="3dp"
                android:color="#000000" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
            <corners android:radius="10dp" />
        </shape>
    </item>
</selector>
4

1 回答 1

1

州名单

在每次状态更改期间,从上到下遍历状态列表并使用与当前状态匹配的第一项——选择不是基于“最佳匹配”,而只是满足状态最低标准的第一项.

所以你必须交换这两个项目。应该是这样

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="true" android:color="@android:color/black" >
        <shape android:shape="rectangle" >
            <solid android:color="#8faefd" />
            <stroke
                android:width="3dp"
                android:color="#000000" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
            <corners android:radius="10dp" />
        </shape>
    </item>
    <item android:color="@android:color/black" >
        <shape android:shape="rectangle" >
            <solid android:color="#FFFFFF" />
            <stroke
                android:width="1dp"
                android:color="#000000" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
            <corners android:radius="10dp" />
        </shape>
    </item>
</selector>
于 2012-06-30T16:40:44.883 回答