Android的佈局管理

概述

佈局

  • 佈局是Android應用程序的界面定義。
  • 佈局中所有界面元素,都是視圖(View)對象或試圖組(ViewGroup)對象。(視圖是數據庫的一個獨立對象,是一個虛擬表)
  • 一個佈局首先是一個視圖組對象,然後在視圖組對象中添加子視圖組對象或者視圖對象。
    佈局的定義方式
    可以通過兩種方式來定義佈局:XML定義和代碼定義
  • XML定義:運用Android Studio可以快速設計UI佈局及包含的界面元素
  • 代碼定義:在Java或Kotlin代碼中定義佈局
  • 在每個應用程序創建時會默認包含一個主界面佈局,該佈局位於res/layout目錄中。
  • 實際開發中每個應用程序都包含多個界面,而程序默認提供一個主界面佈局無法滿足需求,因此經常會在程序中添加多個佈局。
    佈局的分類

佈局的分類有約束佈局、線性佈局、幀佈局、表格佈局、絕對佈局、相對佈局等
常用佈局有以下幾種:

  • 約束佈局 : 通過相對定位排列
  • 線性佈局 : 以水平或垂直方向排列
  • 幀佈局 : 幀裏的控件(層)疊加
  • 表格佈局 :表格形式排列

線性佈局

線性佈局(LinearLayout)主要以水平或垂直的方式來顯示界面中的控件。當控件水平排列時,顯示順序依次爲從左到右,當控件垂直排列時,顯示順序依次從上到下。線性佈局中,每行或每列中只允許有一個子視圖或控件。
LinewrLayout的最主要的屬性有:

  • android : gravity : 設置內部控件的顯示位置。
  • android :orientation :設置內部控件的排列方向,常量horizontal(默認值)表示水平排列,vertical表示垂直排列。
  • android:layout_weight: 設置內部控件在LinearLayout中所佔的權重。當控件使用權重屬性時,佈局寬度或高度屬性值通常設置爲0.
 <Button
 	android:layout_width = "0dp"
 	android:layout_height = "wrap_content"	
	android:layout_weight = "2"/>

約束佈局

約束佈局ConstraintLayout是一個ViewGroup,可以在Api9以上的Android系統使用它,它的出現主要是爲了解決佈局嵌套過多的問題,以靈活的方式定位和調整小部件。

  • ConstraintLayout是Google在2016年的Google I/O大會上提出的一個可以靈活控制子控件的位置和大小的新佈局。
  • ConstraintLayout可以在不嵌套ViewGroup的情況下實現非常龐大、複雜的佈局,實現扁平化。
  • ConstraintLayout同時具有RelativeLayout和LinearLayout的有點、特點,功能強大。
  • 使用ConstraintLayout來佈局時性能比其他佈局方式高。
  • ConstraintLayout無論是通過佈局管理器拖拽,鼠標控制的形式實現還是使用XML代碼去寫,都比較方便。

幀佈局

幀佈局是一種特殊的佈局,它以層疊的方式顯示佈局中的多個控件

  • 幀佈局主要掌握以下以下兩個屬性的使用
1.android:layout_gravity
2.android:visibility
  • 默認情況下,控件位於幀佈局的左上角。可通過控件的android:layout_gravity屬性控制其位置。
  • android:layout_gravity屬性可設置爲下列值:
top//控件位於佈局頂部
bottom//控件位於佈局底部,單獨使用時等價於"left|bottom"
left//控件位於佈局左側
right//控件位於佈局右側,單獨使用時等價於"top|right"
center//控件位於佈局中心
center_vertical//控件位於垂直方向上的中間位置,單獨使用時等價於"left|center_vertical"
center_horizontal//控件位於水平方向上的中間位置,單獨使用時等價於"top|center_horizontal"
  • gravity的中文意思時“重心”就是表示view橫向和縱向停靠的位置
  • android:gravity是對控件本身來說的,是用來設置控件本身的內容應該顯示在控件的什麼位置,默認值是左側,也可以用來設置佈局中的控件位置
  • android:layout_gravity:是相對於包含該控件的父控件來說的,設置該控件在父控件的什麼位置
  • android:visibility
View.VISIALBE//可見,顯示到頁面
View.INVISIABLE//不可見,但是還是佔用位置
View.GONE//隱藏,不可見並且不佔用位置

表格佈局

表格佈局(TableLayout)是以表格形式排列控件的,通過行和列將界面劃分爲多個單元格,每個單元格都可以添加控件

  • 表格佈局需要和TableRow配合使用,每一行都有TableRow對象組成,因此TableRow的數量決定表格的行數。而表格的列數是由包含最多的TableRow決定的,例如第一個TableRow有兩個控件,第二個TableRow有三個控件,則表格列數爲三
    表格佈局屬性
佈局屬性 功能屬性
android:strechColumns 設置該列被拉伸
android:shrinkC 設置該列被拉伸
android:collapseColumns 設置該列被隱藏

表格佈局控件屬性

控件屬性 功能描述
android:layout_span 設置該單元格佔據幾列,默認爲一列
android:layout_column 設置該單元顯示位置

之後爲android的簡單控件https://blog.csdn.net/qq_44164791/article/details/104252517
Android的Activity(活動)https://blog.csdn.net/qq_44164791/article/details/104278506

發佈了11 篇原創文章 · 獲贊 43 · 訪問量 8471
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章