安卓layout_weight总结

    关于安卓中layout_weight属性的使用总是让很多开发者迷迷糊糊,编写的代码往往无法达到想要的效果。上网查了一些资料以后自己也写了个小DEMO后算是对layout_weight的属性有了个基本的掌握。下面就简单的介绍一下:

    一、基本原理

    首先layout_weight属性仅在LinearLayout适用,系统先将Layout中各个控件所占用的空间分配给各控件,屏幕上剩下的空间即为剩余空间。再根据各控件的layout_weight所占的比例将剩余空间分配给各控件。若剩余空间为负,则也按照比例计算在当前控件所占空间中减去相应的部分,这也正是当布局orientation方向上各控件宽度为fill_parent时,产生的控件所分配比例与layout_weight属性值相反的原因(当各控件都为fill_parent时,剩余空间必定为负,此时各控件所分配的剩余空间也都是负,所占比例小的减掉的面积小故最后剩下的面积也就相对较大)

    二、使用技巧

    1、当需要对控件进行平等分配的时候,可以用wrap_content和相同的weight值搭配使用,若使用fill_parent的话往往不能达到效果。

    2、当需要实现一个控件填满屏幕剩余空间的时候,可将其宽度设置为0dp,并设置layout_weight为1,其他所有控件不设置weight属性(原理:系统先将其他控件所占用的空间分配好,由于只有需要填充的控件具有layout_weight属性,故剩余空间全部分配给它,也就实现了该控件填满屏幕剩余空间的目标)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章