Android(安卓)selector中设置 android:state_enabled 不起作用问题的解决
16lz
2021-01-24
因为要为button设置不同状态下不同的背景,写了一个selector,如下:<?xml version="1.0" encoding="utf-8"?>
但是在使用时,设置 button.setEnabled(false)背景却无任何变化。
试着把state_enabled放在最前面:
<?xml version="1.0" encoding="utf-8"?>
这样再设置button.setEnable(false)背景显示正常了。Why???
查了相关资料发现:
selector中各个item的顺序是会影响实际效果的(敲黑板!!!)
selector的item从上到下是按照匹配原则来改变状态的,一旦匹配到某个item的状态,就不会继续往下匹配。
例如:
<?xml version="1.0" encoding="utf-8"?>
这样设置 button按下就会有背景上的变化。然而,如果item换一下顺序:
<?xml version="1.0" encoding="utf-8"?>
这样再把button按下 背景不会有任何变化。
当
再举一个例子:
<?xml version="1.0" encoding="utf-8"?> -
-
-
点击按钮时会看到按钮的高亮状态,然后又恢复正常,这一过程执行的动作是:“点击”,在手指离开按钮之后 第二条`
重点:一旦匹配到某个item的状态,就不会继续往下匹配!!
更多相关文章
- Android——LinearLayout按下(state_pressed)或获取焦点时(state
- Android电源管理机制分析(zz)
- 【转】Android状态栏、导航栏、DecorView高度
- Android底部导航栏,三种风格和实现
- Linux与Android休眠唤醒对比(二)
- Android(安卓)1分钟教你打造酷炫的引导页(实现ViewPager淡入淡出
- Android(安卓)- Acitivty生命周期 理解
- Android中的菜单-OptionMenu
- android学习笔记(三)基础UI组件1——按钮,文本框,CheckBox,Radiobutto