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

州リスト

状態が変化するたびに、状態リストが上から下にトラバースされ、現在の状態に一致する最初の項目が使用されます。選択は「最適な一致」に基づくのではなく、単に状態の最小基準を満たす最初の項目に基づいて行われます。 .

したがって、この 2 つの項目を交換する必要があります。そうあるべき

<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 に答える