解决Android5.0设置button的enable为false时的效果不明显

一、修改系统button默认的颜色

每一次写布局用到button的时候,系统默认的button颜色是这样的

系统默认的button

很难看有木有!这和我高档的app风格完全不搭好不好。但是写一个背景颜色,就单单只是一个背景颜色,没有一点的点击效果,更别说在5.0上显示水波纹的效果,实话告诉你,毛都没有,点击完全纹丝不动
其实我也想到了给它写个seletor,尼玛,总不能每一个都写个selector吧,而且,好像设置了selector,也没有波纹的效果。于是乎,百度一下,你就知道~
经过百度,是可以修改它默认的颜色的
在主题下或者给button单独写一个style,style中添加下面一句话

<item name="colorButtonNormal">@color/zhuColor</item>

后面是默认的Button的颜色,这样,每次布局的时候就不用为不能修改button的颜色而发愁了。

但是,在android4.4上面设置button按钮的enable为false的时候,有明显的禁用效果;然而,到了5.0以及以上,效果就消失了,虽然不能点击,不能使用,但是颜色基本上没有变嘛

这是正常的颜色

这是设置为false后的颜色

从上图中看出,完全没有什么变化

二、解决问题

于是,我又进行了百度;还好问题一下就找到了——Material Design Button 的 disable 效果;这位大哥的方法解决了我的问题。
在android5.0上,在原来的基础上给button添加一个seletor

<item name="colorButtonNormal">@color/zhuColor</item>

改为

<item name="colorButtonNormal">@drawable/selector_button_disable</item>

其中@drawable/selector_button_disable为选择器
内容为:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:color="@color/zhuColorFalse" android:state_enabled="false" />
        <item android:color="@color/zhuColor" />
</selector>

搞定之后,成功解决


解决之后的效果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,955评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,393评论 4 61
  • 转入周日下午成人班上的第二次课。 感觉不好,挫败、自卑甚至有放弃學书的念头。 可还是想要继续,写字的过程有时真的是...
    于道其阅读 1,441评论 0 1
  • 顾客说:考虑考虑 你就说:太好了想考虑一下就表示你有兴趣是不是? 他说:是 你说:你会这么说就表示你会认真考虑你最...
    博谦阅读 2,490评论 0 0
  • Ajax工作原理是 相当于在用户和服务器之间加了—个中间层(AJAX引擎),使用户操作与服务器响应异步化。 对于用...
    紫夏离殇阅读 2,383评论 0 1

友情链接更多精彩内容