踩过的坑之-----selector

打算踏踏实实的做技术了,以前总是毛毛躁躁的将代码粘贴复制完事能跑起来就行。最近慢慢感觉这样真的对自己的时间和经历是一种浪费。

就从最基本的做起吧,今天做了一个selector,在按钮上面添加效果,

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 默认时-->
    <item android:color="@android:color/background_light"/>
    <!-- 压下时-->
    <item android:state_pressed="true" android:color = "@android:color/holo_red_dark"/>
   
</selector>

这是最开始的代码,调了很久发现没有效果啊!!找了很多论坛里面,都不行,结果将以前的代码里面的相似代码比较,还是没发现原因。最后发现是要将默认效果放到后面才能实现效果。被自己蠢哭了。。。。

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

    <!-- 压下时-->
    <item android:state_pressed="true" android:color = "@android:color/holo_red_dark"/>
    <!-- 默认时-->
    <item android:color="@android:color/background_light"/>
</selector>

解决问题了就好了,还能够在selector里面添加shape

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <shape android:shape="rectangle">
            <corners android:radius="15dp"/>
            <solid android:color="@color/colorPrimary"/>
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle">
            <corners android:radius="15dp"/>
            <solid android:color="@color/colorAccent"/>
        </shape>
    </item>

</selector>

 

posted @ 2016-03-08 23:46  bob_admin  阅读(225)  评论(0编辑  收藏  举报