使用selector作为背景转换在实际开发中非常方便,但其中有一些选项看的云里雾里,查找了很多帖子结合自己的实际使用解说一下,以防忘记。
首先你要有个<item/>,这是selector中唯一接受的根节点
选择类
android:state_focused 是否取得焦点,组件获取焦点。当你的edittext获取到焦点时和失去焦点时可以换背景。
android:state_hovered 光标是否悬停,通常与focused state相同,它是4.0的新特性
android:state_selected 被选中,它与focus state并不完全一样,如一个list view 被选中的时候,它里面的各个子组件可能通过方向键,被选中了。
android:state_checkable 组件是否能被check。如:RadioButton是可以被check的。
android:state_checked 被checked了,如:一个RadioButton可以被check了。
android:state_enabled 能够接受触摸或者点击事件
android:state_activated 被激活(这个麻烦举个例子,不是特明白)
android:state_window_focused 应用程序是否在前台,当有通知栏被拉下来或者一个对话框弹出的时候应用程序就不在前台了
你写的时候还需要注意顺序,他是从上到下读取的,所以范围应当从小到大,否则就会出现被拦截,怎么点都不变化的问题
android:drawable 放置
注意:如果有多个item,那么程序将自动从上到下进行匹配,最先匹配的将得到应用。(不是通过最佳匹配)
如果一个item没有任何的状态说明,那么它将可以被任何一个状态匹配。