本文共 1788 字,大约阅读时间需要 5 分钟。
一、前提
selector为状态选择器,一般使用在各种操作状态下,主要体现在字体,背景的切换方面,我们可以动态的使用代码去设置!也可以使用selector状态选择器去快速实现,因为它简单方便,复用性强!二、目标
selector三、内容
1、类型 //设置是否按压状态,一般在true时设置该属性,表示已按压状态,默认为false android:state_pressed//设置是否选中状态,true表示已选中,false表示未选中
android:state_selected//设置是否勾选状态,主要用于CheckBox和RadioButton,true表示已被勾选,false表示未被勾选
android:state_checked//设置勾选是否可用状态,类似state_enabled,只是state_enabled会影响触摸或点击事件,state_checkable影响勾选事件
android:state_checkable//设置是否获得焦点状态,true表示获得焦点,默认为false,表示未获得焦点
android:state_focused//设置触摸或点击事件是否可用状态,一般只在false时设置该属性,表示不可用状态
android:state_enabled//设置当前窗口是否获得焦点状态,true表示获得焦点,false 表示未获得焦点,例如拉下通知栏或弹出对话框时, 当前界面就会失去焦点;另外,ListView的ListItem获得焦点时也会触发true状态,可以理解为当前窗口就是ListItem本身
android:state_window_focused//设置是否被激活状态,true表示被激活,false表示未激活,API Level 11及以上才支持,可通过代码调用控件的
android:state_activated//方法设置是否激活该控件
setActivated(boolean)//设置是否鼠标在上面滑动的状态**,true表示鼠标在上面滑动,默认为false,API Level 14及以上才支持
//补充:selector标签下有两个比较有用的属性要说一下,添加了下面两个属性之后,则会在状态改变时出现淡入淡出效果, //但必须在API Level 11及以上才支持 android:state_hovered//状态改变时,旧状态消失时的淡出时间,以毫秒为单位
android:exitFadeDuration//状态改变时,新状态展示时的淡入时间,以毫秒为单位
android:enterFadeDuration2、布局
先创建一个新的xml文件再在布局文件中添加一个按钮
3、常用类型介绍
(1)android:state_pressed,按压效果,点击后改变颜色这里面便用到了上次讲到的shape属性,具体不多说,selector状态选择器中只有一个元素就是item,其余的效果展示都要写在item中
2、android:state_checked 先在布局文件中添加两个复选框改变按钮的样式,提前加入两张图片,可自选
在selector.xml文件中添加RadioButton相似,再次不做展示
3、android:state_focused
先添加两个编辑框,因为获取焦点一般都用在编辑框在xml文件中可以不写false的选项
四、总结
这些类型可以共用,也就是一个组件可以实现多个元素,再遇见其他需要的类型时会再做介绍转载地址:http://tyvrn.baihongyu.com/