在账号密码输入框的样式设计的时候,要实现一个LinearLayout中包含一个TextView和一个EditText,在用户点的时候实现焦点的效果,听上去好像不难实现,但当做起来的时候还是遇到了一些问题,当点击的时候改变的背景仅仅是editext的部分,而整个linear无论如何设置都没有达到想要的效果,尝试了很久,后来经过同事的帮助才了解到一个以前没用过的属性 android:addStatesFromChildren,做一简单的整理,算是记录学习的过程。
在android的API中是这样描述的:
设置整个viewGroup的drawable状态是否也包含子空间的drawable状态。该属性用于当子控件editext或者button获得焦点时作为一个组出现使用(翻译的不好,水平有限,理解就好),这样一来,将android:addStatesFromChildren设为true,当组中的EditText或是Button获取焦点时,将Layout的Background设置成相应EditText或的Button的Drawable ,这样看上去该linear中的view是一个整体。
还是有实际项目做比较好,遇到新的问题就可以多不断积累经验,继续加油骚年~!