線性布局,顧名思義,指的是整個(gè)Android布局中的控件擺放方式是以線性的方式擺放的
線性布局排列方式有:
-
縱向:android:orientation="vertical"
效果
-
橫向:android:orientation="horizontal"
效果
上面是線性布局的基本樣式盾沫,平時(shí)在開發(fā)中線性布局使用也是相對(duì)較多的一種布局方式
其中現(xiàn)象布局還有一個(gè)屬性使用較多就是layout_weight哲嘲,這個(gè)是占用剩余空間的權(quán)重
一般在使用時(shí)是針對(duì)LinearLayout的子元素,當(dāng)然LinearLayout也可以設(shè)置父容器的總權(quán)重值
下面來看看 兩個(gè)子元素的設(shè)置效果
上面的樣式及效果說明:
首先線性布局是橫向布局你倦炒,子元素中所有元素的寬度都設(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)尖坤,頁面也就看不到了稳懒。這種情況我也就不截圖了,大家可以自行嘗試慢味。
下面再看看不給子元素設(shè)置默認(rèn)寬度值為0dp场梆,設(shè)置為wrap_content
看到這種情況,回想到是不是我這權(quán)重不起作用了呢纯路,怎么沒有達(dá)到預(yù)期的效果或油,為什么第一個(gè)明明應(yīng)該占1/3,為啥成這個(gè)樣子了呢驰唬?其實(shí)是沒有問題的顶岸,一開始我們就說了,這個(gè)layout_weight是占剩余空間的權(quán)重叫编,出現(xiàn)這種情況就不奇怪了辖佣。
總結(jié):
在實(shí)際開發(fā)中我們用的最多的就是線性布局,再現(xiàn)性布局中搓逾,我個(gè)人認(rèn)為最應(yīng)該掌握的就是線性布局的權(quán)重值的使用凌简。我一般使用的時(shí)候都會(huì)按照開始的那個(gè)效果,讓所有子元素對(duì)應(yīng)的寬或者高設(shè)置為0dp恃逻,這樣就會(huì)按照咋們所想的效果來展示了,當(dāng)然后面這樣了例子在某些特殊場(chǎng)景下還是可以起到很好的作用的藕施。
代碼只會(huì)按照你所寫的方式運(yùn)行寇损,不會(huì)按照你想的方式運(yùn)行