android selector android:state_enabled 无效
16lz
2021-01-24
今天准备为安卓应用中的Button设置样式,在可用(enabled)的时候是深灰色,在不可用(disabled)的时候是浅灰色。
[java] view plain copy-
"http://schemas.android.com/apk/res/android" > -
- "@drawable/button_shape_normal"
- android:state_pressed="false"/>
-
- "@drawable/button_shape_pressed"
- android:state_pressed="true"/>
-
- "@drawable/button_shape_normal"
- android:state_enabled="true"/>
-
- "@drawable/button_shape_disabled"
- android:state_enabled="false"/>
但实际运行发现所有Button都是深灰色的,也就是说,我这个state_enabled 的设置没有起作用。这是为什么呢?
看看Xml文件,怎么看都看不出哪里有问题。
这个selector中,除了state_enabled这个状态之外,上面还有state_pressed这个状态,并且state_pressed是起作用的。
于是,根据一丝可以称之为“经验”的感觉,我试着把state_enabled和state_pressed换了一下位置,也就是把state_enabled放在最前面:
[java] view plain copy
-
"http://schemas.android.com/apk/res/android" > -
- "@drawable/button_shape_normal"
- android:state_enabled="true"/>
-
- "@drawable/button_shape_disabled"
- android:state_enabled="false"/>
-
- "@drawable/button_shape_normal"
- android:state_pressed="false"/>
-
- "@drawable/button_shape_pressed"
- android:state_pressed="true"/>
那么是否可以得出这样的结论,在selector中的这些状态,是有优先级之分的吗?
更多相关文章
- Activity的生命周期,状态保存,窗口显示,取得返回结果,安全退出
- Android(安卓)Wifi模块学习
- android 处理生命周期事件
- Android(安卓)官方架构组件 ViewModel : 对状态的持有和维护
- 【Android】自定义控件实现可滑动的开关(switch)
- android:沉浸式状态栏(状态栏一体化)
- Android(安卓)Permission
- 在Android(安卓)Studio 中使用ADB命令模拟手机各种状态(记录中...
- android 加载网络图片 SkImageDecoder::Factory returned null