Android 布局属性 Android:layout_weight 总结
Android 為我們提供了五種布局方式
其中最常用的應該就是線性布局了。而在線性布局中有一個屬性layout_weight。這個屬性的字面意思是權重,就是說可以通過這個屬性來設置控件在線性布局中的大小比例。
但是在使用中我們發現,當線性布局中的控件使用match_parent時控件大小與權重比例居然相反,而使用wrap_content時甚至weight甚至毫無作用。這是為什么呢?
按照Google官方的說法,layout_weight屬性是用來分配Linerlayout中剩余的屏幕空間的。
現在我們來做一下算術題:
假設屏幕寬度是W,LinerLayout的布局方式是橫向,寬度是屏幕寬度即W。Linerlayout中有兩個控件,寬度都是match_parent即W.現在定義兩個控件左邊的為2,右邊的為1.
現在我們來算一下,兩個控件的寬度:
剩余寬度 S = W - 2*W = -W.
左邊控件分配到的剩余寬度 SL = (2/3)*S =-(2/3)W
右邊控件分配到的剩余寬度 SL = (1/3)S = -(1/3)W
那么左邊控件的實際寬度就是 -(2/3)W+W = (1/3)W
那么右邊控件的實際寬度就是 -(1/3)W+W = (2/3)W
于是權重設置為2:1 但實際顯示效果卻是1:2就是這樣來的。有興趣的同學可以算一下使用wrap_content時顯示的比例??梢园l現根本毫無規律。
那么我們就不用layout_weight這一屬性了嗎?
當然不是
按照Google官方推薦的方法,在使用layout_weight時??梢?strong>將width設置為0dp(當然布局方式是豎向的時候是height)。
希望對看到這篇文章的人有幫助:D
總結
以上是生活随笔為你收集整理的Android 布局属性 Android:layout_weight 总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Xcode7 创建纯代码的项目
- 下一篇: IOS(objective-c)实现md