安卓开发遇到的坑

1. 使用getBackground().setAlpha,导致其他布局背景透明度都改变的问题

 最近接了一个外包开发的项目, 在这个项目上做UI调整和新功能开发。遇到一个getBackground().setAlpha 改变背景颜色的问题。晚上提交完代码, 第二天运行发现项目中的所有对话框(dialog,popwindow)背景全部变成透明效果了。然后就感觉肯定是不小心改变主题样式什么的。但是查看所有的提交记录都没有发现有关 theme 和Style 相关的提交记录。然后回滚到没问题的版本一个文件一个文件的对比。

用了一上午的时间发现无意间改了这个文件

    

因为这个色值和整体的项目主题不搭, 随手就改了,导致整个项目的 dialog和popwindow 都变成了透明效果。

因为印象中看到过这样的设置, 所以感觉肯定是这的问题。

果然在网上找了资料才知道,在布局中多个控件同时使用一个资源的时候,这些控件会共用一个状态,例如ColorState,如果你改变了一个控件的状态,其他的控件都会接收到相同的通知。这时我们可以使用mutate()方法使该控件状态不定,这样不定状态的控件就不会共享自己的状态了。

llSearch.getBackground().mutate().setAlpha(0);

参考:https://blog.youkuaiyun.com/myatlantis/article/details/49336587

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值