weight屬性全面解析

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,或者相反




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