本文共 1512 字,大约阅读时间需要 5 分钟。
如果设置禁用状态,需要放在按下等状态的前面,否则不起作用,因为系统会从上到下一次解析,遇到合适的状态就直接取值,不会再解析后面的节点
设置圆角边框背景的时候,需要透明化中间部分,否则在低版本手机上,会表现成黑色背景
在项目 src/main/res 目录下,新建 color 资源文件夹,并在 /color 下新建 selector_text_color.xml 文件。这样就可以在设置控件的 android:textColor 属性时引用此选择器,控制控件被选中或者取消选中时文本的颜色改变
要实现在 5.0 以上手机上点击出现波纹效果,5.0 以下单纯变灰的效果,有两种方法:
第一种:自定义两个相同名称的 selector ,分别放在 drawable 和 drawable-v21 区别开 21 版本之前和之后
drawable/selector_bg.xml:drawable-v21/selector_bg.xml: 然后在 View 上设置:android:clickable="true"android:background="@drawable/selector_bg"
第二种:直接使用系统提供的 attr
android:clickable="true" android:background="?attr/selectableItemBackground" android:background="?attr/selectableItemBackgroundBorderless"
Note:有的控件需要设置 android:foreground 前景属性,比如 CardView
两种方式对比:
使用系统提供的 attr,简单方便,不用考虑配色等问题,便于和系统风格统一
使用自定义 selector 的方式,比较灵活,可以根据需求改变波纹颜色,自定义形状等
转载地址:http://bopgi.baihongyu.com/