动态改变LinearLayout的背景

背景:四个LinearLayout,每个LinearLayout里都包含textView\EditText等控件;实现每个editText获得焦点的时候      LinearLayout的背景状态也响应地改变;


实现:1、LinearLayout需要的不同的背景状态用单独的selector保存,设置默认状态和改变状态;

         2、使用addStatesFromChildren来改变LinearLayout的状态;系统自动根据LinearLayout的状态来改变                   LinearLayout的背景状态;

总结:我是在实战项目中遇到的这个问题的,当时是想改变LinearLayout的背景图片来标记用户当前选中的是哪个editText,显示突出效果;但是在网上找了很久都没有找到相关实现方法;自己也尝试用代码来实现,但是LinearLayout的状态在代码中标记好像也不管用;终于在http://blog.csdn.net/eyu8874521/article/details/8076955中找到了addStatesFromChildren的实现方法,然后试了就成功了。

addStatesFromChildren在API中的解释是Sets whether this ViewGroup's drawable states also include its children's drawable states.个人理解是,父控件的状态随子控件的状态改变而改变;所以我们可以使用addStatesFromChildren来控制布局管理器的状态,从而改变布局管理器的背景图片。

转载于:https://my.oschina.net/u/1252598/blog/156394

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值