androidweight
㈠ android編程android:layout_weight="1"報錯「Invalid layout param in a RelativeLayout: layout_weight
你用的布局是相對布局RelativeLayout 而 layout_weight這個屬性是在線性布局LinearLayout中使用的 用在相對布局中是無效的
layout_weight 用於給一個線性布局中的諸多視圖的重要度賦值。
所有的視圖都有一個layout_weight值,默認為零,意思是需要顯示
多大的視圖就占據多大的屏幕空 間。若賦一個高於零的值,則將父視
圖中的可用空間分割,分割大小具體取決於每一個視圖的layout_weight
值以及該值在當前屏幕布局的整體 layout_weight值和在其它視圖屏幕布
局的layout_weight值中所佔的比率而定。
舉個例子:比如說我們在 水平方向上有一個文本標簽和兩個文本編輯元素。
該文本標簽並無指定layout_weight值,所以它將占據需要提供的最少空間。
如果兩個文本編輯元素每一個的layout_weight值都設置為1,則兩者平分
在父視圖布局剩餘的寬度(因為我們聲明這兩者的重要度相等)。如果兩個
文本編輯元素其中第一個的layout_weight值設置為1,而第二個的設置為2,
則剩餘空間的三分之二分給第一個,三分之一分給第二個(數值越小,重要度越高)。
㈡ 為什麼android layout_weight屬性可以把控制項按一定的比例進行布局
下Layout_weight屬性的作用:它是用來分配屬於空間的一個屬性,你可以設置他的權重。
SDK中的解釋:
Indicates how much of theextra spacein the LinearLayout will be allocated to the view associated with these LayoutParams. Specify 0 if the view should not be stretched. Otherwise the extra pixels will bepro-ratedamong all views whose weight is greater than 0.
重點有兩個
layout_weight表示LinearLayout中額外空間的劃分(可能擴大應用layout_weight前的大小也可能縮小)。
按比例(layout_weight大小的比例)。
以下說的都以android:orientation="horizontal" 為例
看了一下源碼,雖說不太懂,但了解了下大概意思,按照自己的理解總結一下,直接寫一下簡化的代碼吧(下面的代碼是LinearLayout源文件中一部分的精簡,變數名稱含義可能不準確,為敘述方便暫作此解釋):
㈢ LinearLayout布局下android:layout_weight用法
layout_weight意思是布局比重的意思,在線性布局中常用layout_weight,分割布局。
通常線性布局中寬高布局常用android:layout_width=match_parent|wrap_content,android_height=match_parent|wrap_content來進行布局,如果要用比重布局,通常android:layout_width屬性就會不起作用,設置為"0";根據想要布局的比例,設定android:layout_weight的值,值越大,占的布局就越大。
考慮到Android多版本的兼容問題,通常使用match_parent而不使用fill_parent.