Android layout_weight 计算方式详解
2014-03-28 00:44
246 查看
学习自: 计算公式:/article/8833225.html
范例:/article/1332705.html
适用范围仅LinearLyout.
假设:LinearLayout为android:orientation="horizontal", layout_weight属性值分别为1、2、2
第一种情况:每个控件的宽度属性都为android:layout_width="0dp",那么额外的空为(手机的宽度假设为X)X-0-0-0=X,那么根据sdk上所述:
第一个控件的宽度为 0+(1/(1+2+2))*X=X/5
第二个控件的宽度为 0+(2/(1+2+2))*X=2X/5
第三个控件的宽度为 0+(2/(1+2+2))*X=2X/5
第二种情况:每个控件的宽度属性都为android:layout_width="match_parent",那么额外的空间就是X-X-X-X=-2X
第一个控件的宽度为 X+(1/(1+2+2))*(-2X)=3X/5
第二个控件的宽度为 X+(2/(1+2+2))*(-2X)=X/5
第三个控件的宽度为 X+(2/(1+2+2))*(-2X)=X/5
第三种情况:其中第一个控件宽度属性为android:layout_width="match_parent",其他两个控件宽度为android:layout_width="0dp",额外的空间为X-X-0-0=0
第一个控件的宽度为 X+(1/(1+2+2))*0=X
第二个控件的宽度为 0+(2/(1+2+2))*0=0
第三个控件的宽度为 0+(2/(1+2+2))*0=0
最终结论:layout_weight的公式
控件的宽度/高度 = 控件的width/height值+(该控件的weight值/所有控件的weight的和)×额外的空间
额外的空间=手机的宽度/高度-所有控件的宽度/高度
注:如果属性为android:layout_width="wrap_content" 则计算时,总宽/高要减去控件本身占据的宽/高
范例:/article/1332705.html
适用范围仅LinearLyout.
假设:LinearLayout为android:orientation="horizontal", layout_weight属性值分别为1、2、2
第一种情况:每个控件的宽度属性都为android:layout_width="0dp",那么额外的空为(手机的宽度假设为X)X-0-0-0=X,那么根据sdk上所述:
第一个控件的宽度为 0+(1/(1+2+2))*X=X/5
第二个控件的宽度为 0+(2/(1+2+2))*X=2X/5
第三个控件的宽度为 0+(2/(1+2+2))*X=2X/5
第二种情况:每个控件的宽度属性都为android:layout_width="match_parent",那么额外的空间就是X-X-X-X=-2X
第一个控件的宽度为 X+(1/(1+2+2))*(-2X)=3X/5
第二个控件的宽度为 X+(2/(1+2+2))*(-2X)=X/5
第三个控件的宽度为 X+(2/(1+2+2))*(-2X)=X/5
第三种情况:其中第一个控件宽度属性为android:layout_width="match_parent",其他两个控件宽度为android:layout_width="0dp",额外的空间为X-X-0-0=0
第一个控件的宽度为 X+(1/(1+2+2))*0=X
第二个控件的宽度为 0+(2/(1+2+2))*0=0
第三个控件的宽度为 0+(2/(1+2+2))*0=0
最终结论:layout_weight的公式
控件的宽度/高度 = 控件的width/height值+(该控件的weight值/所有控件的weight的和)×额外的空间
额外的空间=手机的宽度/高度-所有控件的宽度/高度
注:如果属性为android:layout_width="wrap_content" 则计算时,总宽/高要减去控件本身占据的宽/高
相关文章推荐
- android:layout_weight详解(转)
- android:layout_weight详解 (总结版)
- android:layout_weight属性详解
- android:layout_weight详解
- 详解 Android Views 元素的 layout_weight 属性
- android:layout_weight详解
- android:layout_weight详解
- Android五大布局方式——相对布局(RelativeLayout)属性详解
- android:layout_weight详解
- android:layout_weight详解
- android中layout_weight的公式计算(待续)没弄完的
- android:layout_weight计算
- Android:layout_weight详解
- Android 布局 Layout_weight 详解
- android:layout_weight详解
- android:layout_weight 详解
- android:layout_weight 属性详解
- android:layout_weight属性详解
- android:layout_weight详解
- Android--RadioGroup和Tablayout两种实现底部导航的方式详解