六大布局之很是用佈局

前言

Hi,你們好,新的一週開始啦,讓咱們繼續遨遊在Android的知識海洋中吧!上一次咱們講到了RelativeLayout,相信很多小夥伴已經着手實戰,那麼今天咱們爲你們帶來六大布局中剩下的三個佈局。本篇文章能夠和前面的FrameLayout一同歸類到Android很是用佈局之中,雖然不經常使用,可是小夥伴們也要知道它的一些基礎屬性哦~android

六大布局之AbsoluteLayout

簡介

AbsoluteLayout(絕對佈局), 之因此把這個放到最後,是由於絕對佈局,咱們基本上都是不會使用的,固然你也能夠直接跳過這一 篇博文,不過做爲一個喜歡增加姿式的程序員,咱們仍是能夠了解這個AbsoluteLayout佈局的。放入該佈局的UI控件經過android:layout_xandroid:layout_y 兩個屬性指定其準確的座標值,並顯示在屏幕上。程序員

理論上,AbsoluteLayout佈局可用以完成任何的佈局設計,靈活性很大,可是在實際的工程應用中不提倡使用這種佈局。由於使用這種佈局不但須要精確計算每一個組件的大小,增大運算量,並且當應用程序在不一樣屏幕尺寸的手機上運行時會產生不一樣效果。佈局

佈局屬性

AbsoluteLayout 的佈局屬性就兩個:spa

  • android:layout_x : 設置控件在佈局中的 X 軸方向距離。
  • android:layout_y : 設置控件在佈局中的 Y 抽方向距離。

AbsoluteLayout 只有這個兩個屬性,從絕對佈局的名字就能夠看出來,就是在 X 軸方向和 Y 軸方向經過 dip值(或者 px ) 絕對固定距離。設計

實例

在例子中顯示三個View。code

從例子中能夠得出下面結論:對象

  • 寫在面佈局View會覆蓋寫在上面的View。
  • 在絕對定位中,若是子元素不設置layout_xlayout_y,那麼它們的默認值是0。

六大布局之TableLayout

簡介

TableLayout(表格佈局)是將子view分別排列成行和列的佈局,TableLayout是由許多TableRow對象組成的,表格佈局以行列的形式管理子控件,每個單元是一個TableRow或者View對象。blog

TableLayout中能夠經過setConlumnShrinkable()setConlumnStretchable()方法來指定某些列爲能夠縮小或可伸縮,列是從0開始計數的,第一列爲0。ip

佈局屬性

TableLayout 經常使用佈局屬性:rem

  • stretchColumns 設置運行被拉伸的列的序號 ,如 android:stretchColumns="1,3"表示在第三列的和第四列的一塊兒填補空白,若是要全部列一塊兒填補空白,則用「*」符號,列號都是從0開始算的。

圖中按鈕2被拉伸來替補空白。

  • shrinkColumns設置被收縮的列的序號 ,收縮是用於在一行中列太多或者某列的內容文本過長,會致使某列的內容會被擠出屏幕,這個屬性是能夠幫助某列的內容進行收縮,用於防止被擠出的。

圖中又在上面佈局添加按鈕5,此時 android:shrinkColumns="1",按鈕2被收縮了。

  • collapseColumns設置須要被隱藏的列的序號 使用該屬性能夠隱藏某列。

圖中在上面的佈局中添加 android:collapseColumns="1" ,原來的按鈕2被隱藏了。

  • layout_column爲該子類控件顯示在第幾列android:layout_column="2"表示跳過第二個,直接顯示在第三個單元格內。

  • layout_span 爲該子類控件佔據第幾列android:layout_span="3"表示合併3個單元格,就是這個組件將佔據3個單元格。

六大布局之GridLayout

簡介

GridLayout(網格佈局)是在Android 4.0之後引入的一種新的佈局模式,和表格佈局是有點相似的,但比表格佈局的好,功能也是很強大的,它能夠設置佈局有多少行和有多少列,也能夠設置佈局中的組件的排列方式,也能夠設置組件的位置,橫跨多少行,多少列。

佈局屬性

android:orientation用於設置vertical豎直或horizontal水平。

android:layout_gravity設置對齊方式,能夠設置center,right,left等。

android:rowCount能夠設置行數,要多少行設置多少行,如android:rowCount="2"爲設置網格佈局有2行。

android:columnCount能夠設置列數,要多少列設置多少列,如android:columnCount="2"爲設置網格佈局有2列。

android:layout_row設置組件位於第幾行,從0開始計數的,如android:layout_row="1"爲設置組件在第2行。

android:layout_column設置組件位於第幾列,從0開始計數的,如android:layout_column="1"爲設置組件在第2列。

android:layout_rowSpan設置組件橫跨幾行,如android:layout_rowSpan="2"爲縱向橫跨2行。

android:layout_columnSpan設置組件橫跨幾列,如android:layout_columnSpan="2"爲橫向橫跨2列。

網格佈局在實際應用中不多使用,通常都是經過系統提供的另個一個列表控件 RecyclerView

結論

線性佈局: 指子控件以水平或垂直方式排列

相對佈局: 指子控件以控件之間的相對位置或子控件相對於父容器的位置排列

幀佈局: 指全部子控件均放在左上角且後面元素直接覆蓋在前面元素之上

絕對佈局: 指子控件經過絕對定位x,y位置來決定其位置擺放

表格佈局: 指以行列的形式放置子控件,每一行是一個TableRow對象或者View對象

網格佈局: 指以網格狀放置子控件,能夠控制網格內部行、列個數

結語

以上就是本篇的所有內容,Android六大布局的基本使用也已經所有告訴你們,但願小夥伴們能夠發揮大家的想象力,將不一樣的佈局融合出來一個demo發給咱們,咱們會將效果很是炫的demo進行展現,歡迎小夥伴踊躍投稿~

PS:若是還有未看懂的小夥伴,歡迎加入咱們的QQ技術交流羣:892271582,裏面有各類大神回答小夥伴們遇到的問題哦~

相關文章
相關標籤/搜索