線(xiàn)性布局,顧名思義,指的是整個(gè)Android布局中的控件擺放方式是以線(xiàn)性的方式擺放的
線(xiàn)性布局排列方式有:
-
縱向:android:orientation="vertical"
效果
-
橫向:android:orientation="horizontal"
效果
上面是線(xiàn)性布局的基本樣式,平時(shí)在開(kāi)發(fā)中線(xiàn)性布局使用也是相對(duì)較多的一種布局方式
其中現(xiàn)象布局還有一個(gè)屬性使用較多就是layout_weight,這個(gè)是占用剩余空間的權(quán)重
一般在使用時(shí)是針對(duì)LinearLayout的子元素,當(dāng)然LinearLayout也可以設(shè)置父容器的總權(quán)重值
下面來(lái)看看 兩個(gè)子元素的設(shè)置效果


上面的樣式及效果說(shuō)明:
首先線(xiàn)性布局是橫向布局你,子元素中所有元素的寬度都設(shè)置為0,然后在設(shè)置對(duì)應(yīng)的權(quán)重值,第一個(gè)為1,第二個(gè)為2,那么他們就各自占父元素的1/3和2/3。
現(xiàn)在給父元素設(shè)置一個(gè)android:weightSum="5",再看看效果


這樣給父元素設(shè)置了weightSum之后 子元素的權(quán)重值就受到父元素的權(quán)重值得影響,子元素的權(quán)重值之和不能大于父元素的權(quán)重,如果子元素的權(quán)重值大于父元素的weightSum值,那么只取前面的,后面的元素就不會(huì)出現(xiàn),頁(yè)面也就看不到了。這種情況我也就不截圖了,大家可以自行嘗試。
下面再看看不給子元素設(shè)置默認(rèn)寬度值為0dp,設(shè)置為wrap_content


看到這種情況,回想到是不是我這權(quán)重不起作用了呢,怎么沒(méi)有達(dá)到預(yù)期的效果,為什么第一個(gè)明明應(yīng)該占1/3,為啥成這個(gè)樣子了呢?其實(shí)是沒(méi)有問(wèn)題的,一開(kāi)始我們就說(shuō)了,這個(gè)layout_weight是占剩余空間的權(quán)重,出現(xiàn)這種情況就不奇怪了。
總結(jié):
在實(shí)際開(kāi)發(fā)中我們用的最多的就是線(xiàn)性布局,再現(xiàn)性布局中,我個(gè)人認(rèn)為最應(yīng)該掌握的就是線(xiàn)性布局的權(quán)重值的使用。我一般使用的時(shí)候都會(huì)按照開(kāi)始的那個(gè)效果,讓所有子元素對(duì)應(yīng)的寬或者高設(shè)置為0dp,這樣就會(huì)按照咋們所想的效果來(lái)展示了,當(dāng)然后面這樣了例子在某些特殊場(chǎng)景下還是可以起到很好的作用的。
代碼只會(huì)按照你所寫(xiě)的方式運(yùn)行,不會(huì)按照你想的方式運(yùn)行

