Weight并非网上很多文章所叙述的那样(文章都过于片面),weight是指某个组件在布局中【剩余空间】中的显示权重,那么所谓的剩余空间又是什么意思呢,其实是在没有设置weight属性的控件优先显示的情况,将未占用的布局空间合理分配给设置过weight的组件
例如,0号和2号按钮都设置了android:width=“warp_content",因此文本显示框只能显示在2个按钮中的【剩余空间】,不管宽度如何变动都不能超过这个宽度。
一、主流程
开始-> 加载Activity->进入Activity生命周期->onCreate->加载layout配置文件->
加载容器组建(ViewGroup)->加载各个组件
二、组建加载流程
各组件加载完毕 -> 加载无weight属性组件的高度和宽度–>按weight和剩余空间换算有weight属性的组件的宽度或者高度(根据父容器的orientation属性决定)-> 加载他们的宽度或者高度->显示
提示:在版本较高的ADT中,设置了weight属性后,ADT会给出一次提示警告建议将拥有weight属性组件的高度和宽度设置成0dp,因为这个组件的宽度已经不是由配置文件能决定的了.如果你在设置weight的同时,又给控件加了warp_content或者matchparent的话,可能会按照正比或者反比来分配剩余的控件,比如weight 2:3,实际就是2:3,或者相反