摘要:六大布局之簡介表格布局是將子分別排列成行和列的布局,是由許多對象組成的,表格布局以行列的形式管理子控件,每一個單元是一個或者對象。
前言
Hi,大家好,新的一周開始啦,讓我們繼續(xù)遨游在Android的知識海洋中吧!上一次我們講到了RelativeLayout,相信不少小伙伴已經(jīng)著手實(shí)戰(zhàn),那么今天我們?yōu)榇蠹規(guī)砹蟛季种惺O碌娜齻€布局。本篇文章可以和前面的FrameLayout一同歸類到Android非常用布局之中,雖然不常用,但是小伙伴們也要知道它的一些基礎(chǔ)屬性哦~
六大布局之AbsoluteLayoutAbsoluteLayout(絕對布局), 之所以把這個放到最后,是因?yàn)榻^對布局,我們基本上都是不會使用的,當(dāng)然你也可以直接跳過這一 篇博文,不過作為一個喜歡增長姿勢的程序員,我們還是可以了解這個AbsoluteLayout布局的。放入該布局的UI控件通過android:layout_x 和 android:layout_y 兩個屬性指定其準(zhǔn)確的坐標(biāo)值,并顯示在屏幕上。
理論上,AbsoluteLayout布局可用以完成任何的布局設(shè)計,靈活性很大,但是在實(shí)際的工程應(yīng)用中不提倡使用這種布局。因?yàn)槭褂眠@種布局不但需要精確計算每個組件的大小,增大運(yùn)算量,而且當(dāng)應(yīng)用程序在不同屏幕尺寸的手機(jī)上運(yùn)行時會產(chǎn)生不同效果。
AbsoluteLayout 的布局屬性就兩個:
android:layout_x : 設(shè)置控件在布局中的 X 軸方向距離。
android:layout_y : 設(shè)置控件在布局中的 Y 抽方向距離。
AbsoluteLayout 只有這個兩個屬性,從絕對布局的名字就可以看出來,就是在 X 軸方向和 Y 軸方向通過 dip值(或者 px ) 絕對固定距離。
在例子中顯示三個View。
從例子中可以得出下面結(jié)論:
寫在面布局View會覆蓋寫在上面的View。
在絕對定位中,如果子元素不設(shè)置layout_x和layout_y,那么它們的默認(rèn)值是0。
六大布局之TableLayoutTableLayout(表格布局)是將子view分別排列成行和列的布局,TableLayout是由許多TableRow對象組成的,表格布局以行列的形式管理子控件,每一個單元是一個TableRow或者View對象。
在TableLayout中可以通過setConlumnShrinkable()或setConlumnStretchable()方法來指定某些列為可以縮小或可伸縮,列是從0開始計數(shù)的,第一列為0。
TableLayout 常用布局屬性:
stretchColumns 設(shè)置運(yùn)行被拉伸的列的序號 ,如 android:stretchColumns="1,3"表示在第三列的和第四列的一起填補(bǔ)空白,如果要所有列一起填補(bǔ)空白,則用“*”符號,列號都是從0開始算的。
圖中按鈕2被拉伸來替補(bǔ)空白。
shrinkColumns設(shè)置被收縮的列的序號 ,收縮是用于在一行中列太多或者某列的內(nèi)容文本過長,會導(dǎo)致某列的內(nèi)容會被擠出屏幕,這個屬性是可以幫助某列的內(nèi)容進(jìn)行收縮,用于防止被擠出的。
圖中又在上面布局添加按鈕5,此時 android:shrinkColumns="1",按鈕2被收縮了。
collapseColumns設(shè)置需要被隱藏的列的序號 使用該屬性可以隱藏某列。
圖中在上面的布局中添加 android:collapseColumns="1" ,原來的按鈕2被隱藏了。
layout_column為該子類控件顯示在第幾列。android:layout_column="2"表示跳過第二個,直接顯示在第三個單元格內(nèi)。
layout_span 為該子類控件占據(jù)第幾列。android:layout_span="3"表示合并3個單元格,就是這個組件將占據(jù)3個單元格。
六大布局之GridLayout 簡介GridLayout(網(wǎng)格布局)是在Android 4.0以后引入的一種新的布局模式,和表格布局是有點(diǎn)類似的,但比表格布局的好,功能也是很強(qiáng)大的,它可以設(shè)置布局有多少行和有多少列,也可以設(shè)置布局中的組件的排列方式,也可以設(shè)置組件的位置,橫跨多少行,多少列。
布局屬性android:orientation用于設(shè)置vertical豎直或horizontal水平。
android:layout_gravity為設(shè)置對齊方式,可以設(shè)置center,right,left等。
android:rowCount為可以設(shè)置行數(shù),要多少行設(shè)置多少行,如android:rowCount="2"為設(shè)置網(wǎng)格布局有2行。
android:columnCount為可以設(shè)置列數(shù),要多少列設(shè)置多少列,如android:columnCount="2"為設(shè)置網(wǎng)格布局有2列。
android:layout_row為設(shè)置組件位于第幾行,從0開始計數(shù)的,如android:layout_row="1"為設(shè)置組件在第2行。
android:layout_column為設(shè)置組件位于第幾列,從0開始計數(shù)的,如android:layout_column="1"為設(shè)置組件在第2列。
android:layout_rowSpan為設(shè)置組件橫跨幾行,如android:layout_rowSpan="2"為縱向橫跨2行。
android:layout_columnSpan為設(shè)置組件橫跨幾列,如android:layout_columnSpan="2"為橫向橫跨2列。
網(wǎng)格布局在實(shí)際應(yīng)用中很少使用,一般都是通過系統(tǒng)提供的另個一個列表控件 RecyclerView。
結(jié)論線性布局: 指子控件以水平或垂直方式排列。
相對布局: 指子控件以控件之間的相對位置或子控件相對于父容器的位置排列。
幀布局: 指所有子控件均放在左上角且后面元素直接覆蓋在前面元素之上。
絕對布局: 指子控件通過絕對定位x,y位置來決定其位置擺放。
表格布局: 指以行列的形式放置子控件,每一行是一個TableRow對象或者View對象。
網(wǎng)格布局: 指以網(wǎng)格狀放置子控件,可以控制網(wǎng)格內(nèi)部行、列個數(shù)。
結(jié)語以上就是本篇的全部內(nèi)容,Android六大布局的基本使用也已經(jīng)全部告訴大家,希望小伙伴們可以發(fā)揮你們的想象力,將不同的布局融合出來一個demo發(fā)給我們,我們會將效果非常炫的demo進(jìn)行展示,歡迎小伙伴踴躍投稿~
PS:如果還有未看懂的小伙伴,歡迎加入我們的QQ技術(shù)交流群:892271582,里面有各種大神回答小伙伴們遇到的問題哦~
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76186.html
摘要:舉例,有個第一層為公司,第二層為辦公室,第三層為工位,第四層是程序猿。若不設(shè)置的位置,則此四個文字都將默顯示在左上角,并且公司在最下面,程序猿在最上面。 前言 上一期我們給大家講解了LinearLayout,這一期我們?yōu)榇蠹抑v解一下FrameLayout(幀布局)的使用,相較于其他布局,F(xiàn)rameLayout可以說的上是最簡單的一個,并且其使用范圍相對來說也相對較小,但是也是Andro...
摘要:什么是界面布局為應(yīng)用程序提供界面架構(gòu)。線性布局指子控件以水平或垂直方式排列,正如其名字一樣,這個布局中的所有控件在線性方向上依次排列??梢园巡季挚醋魇且粋€可以放置很多控件的容器,它可以按照一定的規(guī)律調(diào)整控件的位置,從而實(shí)現(xiàn)精美的界面。 1. 什么是Layout? Layout——界面布局,為應(yīng)用程序提供界面架構(gòu)??刂艫ctivity中控件的大小、位置、顏色等屬性的方法. Layout...
摘要:前言上一期我們給大家講解了的使用,這一期我們?yōu)榇蠹抑v解一下相對布局的使用,是的六大布局之一,也是我們常用的布局之一,下面我們一起開始學(xué)習(xí)吧簡介相對布局允許子元素指定它們相對于其父元素或兄弟元素的位置,這是實(shí)際布局中最常用的布局方式之一。 前言 上一期我們給大家講解了FrameLayout的使用,這一期我們?yōu)榇蠹抑v解一下RelativeLayout(相對布局)的使用,RelativeLa...
閱讀 1167·2023-04-26 03:02
閱讀 1198·2023-04-25 19:18
閱讀 2597·2021-11-23 09:51
閱讀 2580·2021-11-11 16:55
閱讀 2634·2021-10-21 09:39
閱讀 1713·2021-10-09 09:59
閱讀 2008·2021-09-26 09:55
閱讀 3538·2021-09-26 09:55