線性布局,顧名思義,指的是整個Android布局中的控件擺放方式是以線性的方式擺放的
線性布局排列方式有:
-
縱向:android:orientation="vertical"
效果
-
橫向:android:orientation="horizontal"
效果
上面是線性布局的基本樣式,平時在開發中線性布局使用也是相對較多的一種布局方式
其中現象布局還有一個屬性使用較多就是layout_weight,這個是占用剩余空間的權重
一般在使用時是針對LinearLayout的子元素,當然LinearLayout也可以設置父容器的總權重值
下面來看看 兩個子元素的設置效果
布局文件.png
樣式效果.png
上面的樣式及效果說明:
首先線性布局是橫向布局你,子元素中所有元素的寬度都設置為0,然后在設置對應的權重值,第一個為1,第二個為2,那么他們就各自占父元素的1/3和2/3。
現在給父元素設置一個android:weightSum="5",再看看效果
布局文件.png
效果.png
這樣給父元素設置了weightSum之后 子元素的權重值就受到父元素的權重值得影響,子元素的權重值之和不能大于父元素的權重,如果子元素的權重值大于父元素的weightSum值,那么只取前面的,后面的元素就不會出現,頁面也就看不到了。這種情況我也就不截圖了,大家可以自行嘗試。
下面再看看不給子元素設置默認寬度值為0dp,設置為wrap_content
布局文件.png
效果.png
看到這種情況,回想到是不是我這權重不起作用了呢,怎么沒有達到預期的效果,為什么第一個明明應該占1/3,為啥成這個樣子了呢?其實是沒有問題的,一開始我們就說了,這個layout_weight是占剩余空間的權重,出現這種情況就不奇怪了。
總結:
在實際開發中我們用的最多的就是線性布局,再現性布局中,我個人認為最應該掌握的就是線性布局的權重值的使用。我一般使用的時候都會按照開始的那個效果,讓所有子元素對應的寬或者高設置為0dp,這樣就會按照咋們所想的效果來展示了,當然后面這樣了例子在某些特殊場景下還是可以起到很好的作用的。
代碼只會按照你所寫的方式運行,不會按照你想的方式運行