Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android:Layout_weight正確的理解

android:Layout_weight正確的理解

編輯:關於Android編程

 

今天在看書的時候無意發現書上寫著”android:Layout_weight是控件占據屏幕的重要度,值越小重要度越高”,當時一看頓時覺得不對勁,android:Layout_weight應該是控件的占據屏幕的權重啊,應該值越大占據比例越大才對啊,經過查閱資料後才寫blog來記錄總結和分享。

錯誤的理解


android:Layout_weight值越大,權重越大,占據比例越大 android:Layout_weight值越小,權重越大,占據比例越大 android:Layout_weight
一般值越大,權重越大,占據比例越大 當width或者height為fill_parent或者match_parent則值越小,權重越大

這些都是錯誤的理解,比如第一種錯誤的理解就是因為平時寫android:Layout_weight時都會把width或者height設置為0dip,而第二種則是把width或者height設置為fill_parent或者match_parent,第三種則是沒有深入研究妄下結論。

正確的理解


正確的理解是

android:Layout_weight是控件占據屏幕的權重,可以通過公式計算出正確的占據屏幕比例

以width來舉例公式是:

實際width = 控件的width + 剩余的width  * (控件的權重/總權重)

情況一 (width為0dp時):
這時候假設有兩個控件,第一個權重為1,第二個權重為2,則總權重為3,代入公式,
第一個實際width = 0 + 屏幕寬 * (1/3)= 1/3屏幕寬
第二個實際width = 0 + 屏幕寬 * (2/3)= 2/3屏幕寬

情況二 (width為fill_parent或者match_parent時):
這時候假設有兩個控件,第一個權重為1,第二個權重為2,則總權重為3,代入公式,
第一個實際width = 屏幕寬 + (-1*屏幕寬) * (1/3)= 2/3屏幕寬
第二個實際width = 屏幕寬 + (-1*屏幕寬) * (2/3)= 1/3屏幕寬

 注:剩余的width = 屏幕寬 - 第一個控件width - 第二個控件width =(-1*屏幕寬) 

這樣就出現了,權重越大,反而占用的比例越少的情況。

情況三 (width為wrap_content或者自定值時):
可以根據公式具體代入。

總結


實際上谷歌給我們定義android:Layout_weight時就希望我們可以快速地按比例劃分布局,所以建議使用android:Layout_weight時候把width和height設置為0dp(當0dp時則是權重越大比例越大),方便計算。

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved