layout_weight與weightSun

layout_weight:權(quán)重,只有在LinearLayout布局中才有效。表明占據(jù)的父控件的“剩余”控件大小。
weightSum:如果沒有定義就是各個layout_weight的累加值。
google官方建議使用layout_weight時(shí),設(shè)置layout_width為0dp,與設(shè)置成wrap_content的效果是一樣的。
layout_weight的含義是:設(shè)置了layout_weight后,那么該view的寬度等于view的原有寬度(layout_width)加上剩余空間的占比。因此把view的layout_width設(shè)置成wrap_content和match_parent會有不同的效果。

![NGBOXS5@0G(]HW%G{WN27.png](http://upload-images.jianshu.io/upload_images/2578759-25a552c412977744.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

(P`@G~Y6Z16EH`89HP2JK_7.png
PAGJ2DU0)PH1`H@)J8%F74J.png

![8CLCS}]`0LD$ZG9D%KCI%DV.png](http://upload-images.jianshu.io/upload_images/2578759-f67f826d82846e85.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
設(shè)屏幕寬度為L,在兩個view的寬度都為match_parent的情況下,原有寬度為L,兩個的View的寬度都為L,那么剩余寬度為L-(L+L) = -L, 左邊的View占比三分之一,所以總寬度是L+(-L)*1/3 = (2/3)L.事實(shí)上默認(rèn)的View的weight這個值為0,一旦設(shè)置了這個值,那么所在view在繪制的時(shí)候執(zhí)行onMeasure兩次的原因就在這。

順帶著理解一下RelativeLayout與LinearLayout在性能方面的區(qū)別。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容