因为要为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按下 背景不会有任何变化。

这个item在第一个,就匹配了按钮正常的状态,然后就不会往下匹配,也就是说下面那个press的item将永远不会被执行。这就是 一旦匹配到某个item的状态,就不会继续往下匹配这句话的意思。

再举一个例子:

<?xml version="1.0" encoding="utf-8"?>                

点击按钮时会看到按钮的高亮状态,然后又恢复正常,这一过程执行的动作是:“点击”,在手指离开按钮之后 第二条` `肯定会满足匹配条件,所以后面的`item`都不会执行。

重点:一旦匹配到某个item的状态,就不会继续往下匹配!!

 

更多相关文章

  1. Android——LinearLayout按下(state_pressed)或获取焦点时(state
  2. Android电源管理机制分析(zz)
  3. 【转】Android状态栏、导航栏、DecorView高度
  4. Android底部导航栏,三种风格和实现
  5. Linux与Android休眠唤醒对比(二)
  6. Android(安卓)1分钟教你打造酷炫的引导页(实现ViewPager淡入淡出
  7. Android(安卓)- Acitivty生命周期 理解
  8. Android中的菜单-OptionMenu
  9. android学习笔记(三)基础UI组件1——按钮,文本框,CheckBox,Radiobutto

随机推荐

  1. Android(安卓)display system overview
  2. 使用apktool + idea 调试smali
  3. Android 自定义 ListView
  4. Android Eclipse 重启adb and Eclipse AD
  5. Android 监听EditText是否为空,控制按钮是
  6. [置顶] Android防火墙+流量统计代码
  7. Android 球碰撞反弹 (1)
  8. android Service详解
  9. Android系统信息查看方法
  10. 【备忘】Android下编译cocos2dx工程