Android Drawable 關於selector中state_pressed="true"的位置順序


界面中有一個按鈕使用這樣的樣式:

 

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <corners android:radius="10dp"/>
            <solid android:color="#ff0099ff"/>
        </shape>
    </item>
    <item android:state_pressed="true">
        <shape>
            <corners android:radius="5dp"/>
            <solid android:color="#ff063c91"/>
        </shape>
    </item>
</selector>

會發現按鈕被點擊之后顏色未變,原來是press="true"的位置顛倒了,改為如下即可:

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <shape>
            <corners android:radius="5dp"/>
            <solid android:color="#ff063c91"/>
        </shape>
    </item>
    <item>
        <shape>
            <corners android:radius="10dp"/>
            <solid android:color="#ff0099ff"/>
        </shape>
    </item>
</selector>

也就是兩個Item標簽更換一下位置。
特殊情況應放在前面,也就是android:state_pressed="true",這一塊應該放在前面。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM