Android開發之常用布局全在這篇 [復制鏈接]

2019-10-17 10:42
kengsirLi 閱讀:708 評論:0 贊:2
Tag:  布局

一、簡介

如下圖所示,按照界面編寫的方式,可以分為傳統布局和新型布局兩種。

1.線性布局:是平常練習demo時最常用的布局,分為水平、垂直方向兩種線性布局,即設置其屬性orientation:"vertical或horizontal"。【注:在不指定方向時,默認為horizontal,即水平方向】

2.相對布局:依據某一控件的位置,來確定另一控件的位置,即另一控件相對于當前控件的位置。

3.表格布局:適用于多行多列的布局方式,通過表格方式來布局控件的位置,并且每個TableLayout由多個TableRow(表示行)組成。

4.網格布局:是在Android4.0之后引入的一個新布局,和上面的TableLayout有點類似,但GridLayout比TableLayout更加好用、靈活。

5.幀布局:放入的所有控件都會被依次放在左上區域,因此下一個控件會重疊覆蓋上一個控件,且無法為控件指定一個確切的位置。一般用于瀏覽單張圖片。

6.絕對布局:這個布局一般不會使用。屏幕的左上角為原點(0,0),橫軸為x軸且向右為遞增,縱軸為y軸且向下為遞增,依據layout_x及layout_y屬性分別設置控件的X及Y坐標。

7.約束布局:先說一下約束布局相對于傳統布局的優勢:①采用可視化的界面,拖拽控件即可完成界面的布局;②解決布局嵌套過多的問題,采用約束的方式來指定各個控件的位置和關系的,它有點類似于RelativeLayout,但遠比RelativeLayout要更強大。

二、常用屬性

2.1 所有布局的公有屬性

Android開發之常用布局全在這篇

2.2 各個布局的特有屬性

  • 線性布局
Android開發之常用布局全在這篇

  • 在不指定線性布局方向的情況下,默認采用水平布局。
  • 為了完全按比例分配剩余空間,我們一般將控件的layout_width或layout_height設置為0dp,然后分別設置其權重值。【這里僅考慮常用的,至于寬設置為wrap_content或match_parent請自行嘗試即可】

例:水平方向上有3個TextView,設置權重為1:1:1,則代碼如下:

Android開發之常用布局全在這篇

運行結果如下:

Android開發之常用布局全在這篇

將權重比例改為1:2:3,運行結果如下。

Android開發之常用布局全在這篇

  • 相對布局
Android開發之常用布局全在這篇

  • 表格布局
Android開發之常用布局全在這篇

例:xml布局代碼如下:

Android開發之常用布局全在這篇

Android開發之常用布局全在這篇

運行結果如下:

Android開發之常用布局全在這篇

由上面的演示可以看出:

  1. 如果直接在TableLayout中添加控件,則該控件將占滿一行,如第一行的文本框獨占一行。
  2. 若要在一行上放置多個控件,則需要在控件的外層添加一個TableRow容器,如第2、3、4、5行放置了不同個數的的按鈕。
  3. TableRow容器中控件的個數決定了該行有多少列(如圖分別有1,3,2,1,2列),而TableLayout的列數由控件最多的TableRow決定(整個布局有3列)。
  4. TableLayout的列的寬度由該列中最寬的單元格決定,如Button44444按鈕決定了第二列的寬度。
  5. 設置layout_column屬性,這里是跳過第1列,從第2列開始放置控件。
  6. 設置layout_span屬性,這里是合并3個單元格,即該按鈕占3個單元格。

請依次添加添加以下布局屬性:

① 收縮1、2列:

android:shrinkColumns="0,1"

運行結果如下:顯示不完全的button8顯示完全了,并且Button1、Button44444、Button6按鈕有收縮

Android開發之常用布局全在這篇

②隱藏第1列:

android:collapseColumns="0"

運行結果如下:由于第4行僅有一個按鈕,則整個第四行隱藏。

Android開發之常用布局全在這篇

③ 伸展第3列:

android:stretchColumns="2"

運行結果如下:由于僅有第2、3行有第三列,并且Button3與B5有拉伸。

Android開發之常用布局全在這篇

  • 網格布局

GridLayout相關屬性如下:

Android開發之常用布局全在這篇

  • 幀布局
  • 幀布局是這幾種布局中最簡單的布局,添加到其中的控件默認會放到布局區域的左上角;
  • 幀布局沒有任何的定位方式,后一個控件會覆蓋前一個控件;
  • 幀布局的大小有控件中最大的控件決定;

注:設置前景圖像的位置可以兩個屬性疊加,例如右下角:bottom|right。

Android開發之常用布局全在這篇

  • 絕對布局

絕對布局很少使用,一般有兩個常用控件屬性:

Android開發之常用布局全在這篇

  • 約束布局

約束布局是Google推薦的一種布局,有關于其拖拽控件、添加約束、借助Inspector設置屬性、Gidelines的使用以及自動添加約束的功能


我來說兩句
您需要登錄后才可以評論 登錄 | 立即注冊
facelist
所有評論(0)
領先的中文移動開發者社區
18620764416
7*24全天服務
意見反饋:[email protected]

掃一掃關注我們

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粵ICP備15117877號 )

龙江福彩p62开奖 只会开车如何赚钱 代理捕鱼游戏赚钱吗 卖柴油到底有多赚钱 星界边缘怎么快速赚钱 全民红中麻将作弊器下载 既可以看书也可以赚钱的应用 春雨医生赚钱破解版 什么养殖项目最赚钱 网络捕鱼排行榜 北京人赚钱能力为何不如南方人 手机捕鱼之海底捞作弊 新大话西游2赚钱 头彩娱乐网址 寻仙游戏 赚钱攻略 河北麻将之四人麻将 撕毛肚赚钱吗