Android_佈局

来源:https://www.cnblogs.com/jiani/archive/2019/09/15/11521629.html
-Advertisement-
Play Games

<該文章參考各大博客以及書籍總結而來,如有問題歡迎指出^ ^> 一、五大傳統佈局+新佈局 線性佈局——LinearLayout 相對佈局——RelativeLayout 幀佈局——FrameLayout 絕對佈局——AbsoluteLayout 表格佈局——TableLayout 約束佈局——Con ...


<該文章參考各大博客以及書籍總結而來,如有問題歡迎指出^ ^>

一、五大傳統佈局+新佈局

  • 線性佈局——LinearLayout
  • 相對佈局——RelativeLayout
  • 幀佈局——FrameLayout
  • 絕對佈局——AbsoluteLayout
  • 表格佈局——TableLayout
  • 約束佈局——ConstraintLayout

二、介紹

(一)LinearLayout

1.簡介

線性佈局,是最常用的佈局之一,這個佈局會將它所包含的控制項線上性方向上依次排列,排列方向可以設定為水平方向或垂直方向。

2.屬性

 排列方向:

1 android:orientation="horizontal" //水平 
2 android:orientation="vertival" //垂直 

對齊方式:

1 android:gravity="centestar|end|top|left|right|center_vertical|center_horizontal"
2 android:layout_gravity

註意:android:gravity 指本元素的子元素相對它的對齊方式

          android:layout_gravity指本元素相對它的父元素的對齊方式

          但凡加上'layout_'首碼的屬性,則意味著是本元素相對其父元素的屬性

          center :居中顯示,但並不表示顯示在LinearLayout的中心,當LinearLyout線性方向為垂直方向時,等同於center_horizental;水平方向時,等同於cental_vertical

          start和left end和right :這裡對於中國的情況,兩者的效果是相同的。left是絕對的左邊,right是絕對的右邊,而start會根據不同的國家改變習慣。

子控制項的大小:

1 android:layout_weight ="1"  //權重
2 android:layout_width="match_parent|wrap_content|xdp"
3 android:layout_height="match_parent|wrap_content|xdp"

註意:layout_weight :用來分配當前控制項在剩餘空間的大小

          當我們是使用layout_weight時,此時控制項的寬度不應該再用layout_width來決定,這裡指定0dp是一種比較貴規範的寫法。(dp是Android中用於指定控制項大小、間距等屬性的單位)

 

(二)RelativeLayout

1.簡介

相對佈局相對於線性佈局更為隨意,它可以通過相對定位的方式讓空間出現在佈局的任何位置。相對佈局可以讓子控制項相對於兄弟控制項或父控制項進行佈局。

2.屬性

子控制項常用佈局:

 

 1 //相對於父控制項
 2 android:layout_alignParentTop  //空間的頂部與父控制項的頂部對齊
 3 androif:layout_alignParentBottom  //控制項的底部與父控制項的底部對齊
 4 android:layout_alignParentLeft  //控制項的左部與父控制項左部對齊
 5 android:layout_alignParentRight  //控制項的右部與父控制項的右部對齊
 6   
 7 //相對給定id控制項
 8 android:layout_above  //控制項的底部置於給定控制項之上 9 android:layout_below  //控制項的底部置於給定控制項之下
 9 android:layout_toLeftOf //控制項的右邊緣於給定控制項左邊緣對齊
10 android:layout_toRightOf  //控制項的左邊緣於給定控制項右邊緣對齊
11 
12 android:layout_alighBaseline  //控制項的baseline與給定控制項的baseline對齊
13 android:layout_alignTop  //控制項的頂部邊緣與給定控制項的頂部邊緣對齊
14 android:layout_alignBottom  //控制項的底部邊緣與給定控制項的底部邊緣對其
15 android:layout_alignLeft  //控制項的左邊緣與給定控制項的左邊緣對齊
16 android:layout_alignRight  //控制項的右邊緣與給定控制項的右邊緣對齊
17 
18 //居中
19 android:layout_centerHorizontal  //水平居中
20 android:layout_centerVertical  //垂直居中
21 android:layout_centerparent  //父控制項中央
22 
23 //屬性值為具體像素值:dp、px
24 android:layout_marginBottom   //離某元素底邊緣的距離
25 android:layout_marginLeft   //離某元素做邊緣的距離
26 android:layout_marginRight  //離某元素右邊緣的距離
27 android:layout_marginTop  //李某元素上邊緣的距離
28 android:padding
29 android:paddingTop
30 android:paddingLeft
31 android:paddingRight

 

 

 

 

註意:當一個控制項去引用另外一個控制項的id時,該控制項一定要定義在引用控制項的後面,不然會出現找不到id的情況

          'align' 排列;‘alignParent’排列在父容器的某個位置

          在最新版本的Android中,單獨使用包含Start或者End屬性的話,會報錯,提示需要再加入Left和Right屬性;而單獨使用Left和Right屬性,會提示一個waring,提示推薦加入Star或者End屬性

          margin 邊緣(外邊距);padding 襯墊,填充(內邊距)

          

 

(三)FrameLayout

1.簡介

最簡單的一種佈局,所有的控制項都會預設擺放在佈局的左上角。後續添加的控制項會覆蓋前一個。幀佈局的應用場景並不是很多,不過經常配合Fragment使用/

2.屬性

1 android:foreground   //設置改幀佈局的前景圖像
2 android:foregroundGravity  //設置前景圖像顯示的位置

 

(四)AbsoluteLayout

1.簡介

絕對佈局中將所有的子元素通過android:layout_x和android:layout_y屬性,將子元素的坐標位置固定下來。屏幕左上角為坐標(0,0),橫嚮往右為正方,縱嚮往下為正方。

 

(五)TableLayout

1.簡介。

表格佈局,適用於多行多列的佈局格式,每個TableLayout是由多個TableRow組成,一個TableRow就表示TableLayout中的每一行,這一行可以由多個子元素組成。實際上TableLayout和TableRow都是LineLayout線性佈局的子類。但是TableRow的參數android:orientation屬性值固定為horizontal,且android:layout_width=MATCH_PARENT,android:layout_height=WRAP_CONTENT。所以TableRow實際是一個橫向的線性佈局,且所以子元素寬度和高度一致。

2.屬性

1 android:shrinkColumns:  //設置可收縮的列,內容過多就收縮顯示到第二行
2 android:stretchColumns:  //設置可伸展的列,將空白區域填充滿整個列
3 android:collapseColumns:  //設置要隱藏的列
4 
5 //子控制項常用屬性:
6 android:layout_column://第幾列
7 android:layout_span://占據列數
註意:在TableLayout中,單元格可以為空,但是不能跨列,意思是只能不能有相鄰的單元格為空
     列的索引從0開始,shrinkColumns和stretchColumns可以同時設置。



 

 

 

  

 

 

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • [TOC] 1. Posix IPC 概述 以下三種類型的IPC合稱為Posix IPC: Posix信號量 Posix消息隊列 Posix共用記憶體 Posix IPC在訪問它們的函數和描述它們的信息上有一些類似點,主要包括: IPC名字 創建或打開時指定的讀寫許可權、創建標誌以及用戶訪問許可權 下表匯 ...
  • Elasticsearch簡介 什麼是 Elasticsearch? Elasticsearch 是一個開源的分散式 RESTful搜索和分析引擎,能夠解決越來越多不同的應用場景。 本文內容 本文主要是介紹了ES GEO數據寫入和空間檢索,ES版本為7.3.1 數據準備 Qgis使用漁網工具,對範圍 ...
  • Kafka常用術語 Broker :Kafka的服務端即Kafka實例,Kafka集群由一個或多個Broker組成,主要負責接收和處理客戶端的請求 Topic :主題,Kafka承載消息的邏輯容器,每條發佈到Kafka的消息都有對應的邏輯容器,工作中多用於區分業務 Partition :分區,是物理 ...
  • 摘要:下文講述MSSQL中,插入數據時,如果存在則更新,否則就插入數據的方法分享實驗環境:sql server 2017 mssql中,我們可以採用 MERGE INTO 關鍵字實現此功能,當兩者匹配成功,則運行***語句,否則運行其它語句,達到插入數據時的判斷操作,具體操作方法如下所示: 轉自: ...
  • 關於Redis的五大數據類型,它們分別為:String、List、Hash、Set、SortSet。本文將會從它的底層數據結構、常用操作命令、一些特點和實際應用這幾個方面進行解析。對於數據結構的解析,本文只會從大的方面來解析,不會介紹詳細的代碼實現。 String 1.實現結構 String是Red ...
  • 有時需要將記憶體中的表與資料庫中的表比較,比如Datatable中有100行數據,需要判斷在資料庫中是否存在,這個時候我們就可以使用sqlserver中的【用戶 定義表類型】 這裡最最最重要的思路是把【用戶 定義表類型】當作一張虛擬的正常表去處理 需求:現在記憶體中有個Datatable,資料庫中有張表 ...
  • 離線: ALTER DATABASE <dbname> SET OFFLINE WITH ROLLBACK IMMEDIATE 線上: ALTER DATABASE <dbname> SET online WITH ROLLBACK IMMEDIATE ...
  • 自從入職新公司之後就一直忙得不行,一邊熟悉開發的流程,一邊熟悉各種網站工具的使用,一邊又在熟悉業務代碼,好長時間都沒有更文了。 不過新公司的 mentor(導師)還是很不錯的,教給我很多東西,讓我也能儘快地上手。不過最近 mentor 請假了幾天,他把任務交給了我,本來想要完美地做好,但是過程中真的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...